2017-03-06 2 views
0

が、そのほかの条件が一致するには、以下の私のコードを確認してください実行されますが、その中の文を実行していない、むしろそれは次のようにエラーを与えていない -パイソン - else条件は、(テストデータが「K」である)

NameError: name "k" is not defined. 

私は8または9を与える場合は、同時に、それだけで再び

from math import sqrt 
def addition(firstNum,secondNum): 
    total = firstNum+secondNum 
    return total 

def substraction(firstNum,secondNum): 
    total = firstNum-secondNum 
    return total 

def multiplication(firstNum,secondNum): 
    total = firstNum*secondNum 
    return total 

def division(firstNum,secondNum): 
    total = firstNum/secondNum 
    return total 

def root(firstNum): 
    total = (firstNum*firstNum) 
    return total 

menu={} 
menu[" "] = "   --------PYTHON CALCULATOR-------   " 
menu["."] = "~~Main Menu~~" 
menu["1"] = "Addition" 
menu["2"] = "Substraction" 
menu["3"] = "Multiplication" 
menu["4"] = "Division" 
menu["5"] = "Square" 
menu["6"] = "Root" 
menu["7"] = "Exit\n" 

while True: 
    options = menu.keys() 
    options.sort() 
    for entry in options: 
     print entry, menu[entry] 

    selection = input("Please select your correct option: ") 

    if selection == 1: 
     firstNum=input ("\nPlease enter first number : ") 
     secondNum=input("Please enter Second number: ") 

     print "Answer is " , addition(firstNum,secondNum) 
     print "--------------------------------------------------------\n\n" 
    elif selection == 2: 
     firstNum=input ("\nPlease enter first number : ") 
     secondNum=input("Please enter Second number: ") 
     print "Answer is " ,substraction(firstNum,secondNum) 
     print "--------------------------------------------------------\n\n" 
    elif selection == 3: 
     firstNum=input ("\nPlease enter first number : ") 
     secondNum=input("Please enter Second number: ") 
     print "Answer is ",multiplication(firstNum,secondNum) 
     print "--------------------------------------------------------\n\n" 
    elif selection == 4: 
     firstNum=input ("\nPlease enter first number : ") 
     secondNum=input("Please enter Second number: ") 
     print "Answer is " ,division(firstNum,secondNum) 
     print "--------------------------------------------------------\n\n" 
    elif selection == 5: 
     firstNum=input ("\nPlease enter first number : ") 
     print "Answer is " ,sqrt(firstNum) 
     print "--------------------------------------------------------\n\n" 
    elif selection == 6: 
     firstNum=input ("\nPlease enter first number : ") 
     print "Answer is " ,root(firstNum) 
     print "--------------------------------------------------------\n\n" 
    elif selection == 7: 
     break 
    else: 
     "Invalid option keyed in..." 
+1

使用 '' input' raw_input'の代わりに。しかし、後で入力をintに変換することを忘れないでください。 –

+0

有効な入力を取得する方法については、http://stackoverflow.com/questions/23294658/asking-the-user-for-input-until-they-give-a-valid-responseを参照してください。 –

答えて

1

利用raw_input代わりのinputメインメニューを示すだけでなく、他の文を実行しないと同時に、上記のエラーが表示されませんでした。 Here's why。ユーザーが入力したstringを返すraw_input、あなたがして使用してintに変換する必要があります

firstnum = int(raw_input('...')) 
+0

ありがとうございます...小さくても重要な修正.... – Prabhu