Pythonの練習のために、電卓のチュートリアルに取り組むことにしました。非常に基本的なことなので、ユーザーがゴミを入れた場合の例外処理を行うことにしました。プログラムの適切な使用は引き続き機能しますが、がらくたをパンチするとクラッシュし、次のように入力します。私のコードは次のとおりです。
loop = 1
choice = 0
while loop == 1:
#print out the 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 " "
choice = input("choose your option: ")
try:
if choice == 1:
add1 = input("add this: ")
add2= input("to this: ")
print add1, "+", add2, "=", add1+ add2
elif choice == 2:
sub1 = input("Subtract this ")
sub2 = input("from this")
print sub1, "-", sub2, "=", sub1 - sub2
elif choice == 3:
mul1 = input("Multiply this: ")
mul2 = input("with this: ")
print mul1, "x", mul2, "=", mul1 * mul2
elif choice == 4:
div1 = input("Divide this: ")
div2 = input("by this: ")
if div2 == 0:
print "Error! Cannot divide by zero! You'll destroy the universe! ;)"
else:
print div1, "/", div2, "=", div1 * div2
elif choice == 5:
loop = 0
else:
print "%d is not valid input. Please enter 1, 2 ,3 ,4 or 5." % choice
except ValueError:
print "%r is not valid input. Please enter 1, 2, 3, 4 or 5." % choice
print "Thank you for using calculator.py!"
ここで有用な答えを見つけましたが、電卓プログラムのエラー処理変数ですが、エラー処理の数値は問題ありません。
なぜ私のコードが機能しなかったのか疑問に思いました。Pythonは関数で例外処理をしたいですか?それは私がそれから得ている雰囲気です。