我的代码似乎工作正常,只是没有打印例外: 打印(“此输入无效。”)部分。当我试图修复它时,事情变得更糟。有人能帮我吗?谢谢您!你知道吗
样本正确输出:
Calculator
Give a number: hah, NEVER
This input is invalid.
Give a number: What?
This input is invalid.
Give a number: 100
Give a number: Just kidding
This input is invalid.
Give a number: 50
(1) +
(2) -
(3) *
(4) /
(5)sin(number1/number2)
(6)cos(number1/number2)
(7)Change numbers
(8)Quit
Current numbers: 100 50
Please select something (1-6): 2
The result is: 50
(1) +
(2) -
(3) *
(4) /
(5)sin(number1/number2)
(6)cos(number1/number2)
(7)Change numbers
(8)Quit
Current numbers: 100 50
Please select something (1-6): 8
Thank you!
我的代码:
def getnumber():
while True:
try:
number = input("Give a number: ")
if number.isdigit():
return number
except Exception:
print("This input is invalid.")
def main():
import math
print("Calculator")
promptForNumbers = True
while True:
if promptForNumbers:
number1 = int(getnumber())
number2 = int(getnumber())
promptForNumbers = False
print("(1) +\n\n(2) -\n\n(3) *\n\n(4) /\n\n(5)sin(number1/number2)\n\n(6)cos(number1/number2)\n\n(7)Change numbers\n\n(8)Quit\n")
print("Current numbers: %s %s" % (number1, number2))
selection = int(input("Please select something (1-8): "))
if selection == 1:
print("The result is: %s" % (number1 + number2))
print("\n")
elif selection == 2:
print("The result is: %s" % (number1-number2))
print("\n")
elif selection==3:
print("The result is: %s" % (number1*number2))
print("\n")
elif selection==4:
print("The result is: %s" % (number1/number2))
print("\n")
elif selection==5:
print("The result is: %s" % math.sin(number1/number2))
print("\n")
elif selection==6:
print("The result is: %s" % math.cos(number1/number2))
print("\n")
elif selection==8:
print("Thank you!")
break
elif selection==7:
promptForNumbers = True
else:
print("Selection was not correct.")
if __name__ == "__main__":
main()
没有看到异常语句执行的原因是try块中的任何代码都不会引发异常。但是,int的构造函数将引发ValueError异常,如果传递的不是数字的内容。你知道吗
根据我的理解,在这种情况下,尝试转换然后捕获异常是验证输入的最具python风格的方法。您可以在docs中阅读有关Python中异常的更多信息。你知道吗
您需要确保从main中对getnumber的所有调用中删除对int的调用。还有,最后一个音符。将导入语句意外地放在文件的顶部被认为是合适的形式。如果你想了解更多,可以在PEP8上阅读。你知道吗
试试这个:
相关问题 更多 >
编程相关推荐