ユーザーからの入力を確認するために、以下のコードを変更しようとしています。入力が文字列の場合、エラーを生成したい場合は、choiceTest() 関数を参照してください。しかし、これは機能せず、次の例外が発生します。グラハムを助けてもらえますか
Choice your option:k
Traceback (most recent call last):
File "C:\Users\Graham\bkup-workspaces\workspace\python-1\calculator.py", line 54, in <module>
choice = menu()
File "C:\Users\Graham\bkup-workspaces\workspace\python-1\calculator.py", line 18, in menu
return input ("Choice your option:")
File "C:\Users\Graham\Desktop\letsussee\eclipse-java-helios-win32\eclipse\plugins\org.python.pydev_2.5.0.2012040618\PySrc\pydev_sitecustomize\sitecustomize.py", line 210, in input
return eval(raw_input(prompt))
File "<string>", line 1, in <module>
NameError: name 'k' is not defined
コード:
# calculator program
# NO CODE IS REALLY RUN HERE, IT IS ONLY TELLING US WHAT WE WILL DO LATER
# Here we will define our functions
# this prints the main menu, and prompts for a choice
def menu():
#print what options you have
print "Welcome to calculator.py"
print "your options are:"
print " "
print "1) Addition"
print "2) Subtraction"
print "3) Multiplication"
print "4) Division"
print "5) Quit calculator.py"
print " "
return input ("Choice your option:")
# this adds two numbers given
def add(a,b):
print a, "+", b, "=", a + b
# this subtracts two numbers given
def sub(a,b):
print b, "-", a, "=", b - a
# this multiplies two numbers given
def mul(a,b):
print a, "*", b, "=", a * b
# this divides two numbers given
def div(a,b):
print a, "/", b, "=", a / b
# decide if the choice is valid or not
def choiceTest():
isinstanceValue = isinstance(choice,int)
instancevalueout = str(isinstanceValue)
print "value is" + instancevalueout
if not instancevalueout is "True":
print " NOT AN INTEGER " + instancevalueout
raise SystemExit
# NOW THE PROGRAM REALLY STARTS, AS CODE IS RUN
loop = 1
choice = 0
isinstanceValue = True
instancevalueout = ""
while loop == 1:
choice = menu()
choiceTest()
if choice == 1:
add(input("Add this: "),input("to this: "))
elif choice == 2:
sub(input("Subtract this: "),input("from this: "))
elif choice == 3:
mul(input("Multiply this: "),input("by this: "))
elif choice == 4:
div(input("Divide this: "),input("by this: "))
elif choice == 5:
loop = 0
print "Thankyou for using calculator.py!"
# NOW THE PROGRAM REALLY FINISHES