我在这个程序的最后有一个while True
循环来处理几个选项。第一个选项工作正常,并调用适当的功能。但是,后两个选项在执行前重复提示。我不知道为什么会这样。
以下是相关代码:
while True:
options = "\n (1) for another entry or (2) to quit. "
if input(options) == 1:
subtraction(total)
elif input(options) == 2:
break
else:
print " Option not recognized."
但是当我击中(2)时,我得到了:
(1) for another entry or (2) to quit. 2
(1) for another entry or (2) to quit. 2
然后退出。如果我输入任何其他内容以触发"无法识别的选项"消息。
我已查看了while循环的Python参考资料,并且我已在此网站上针对类似案例进行了一系列搜索。我确信这是一件我想念的简单事情,但我并不是靠自己来做。提前感谢任何回复。
答案 0 :(得分:1)
您需要一次评估条件,并且只需评估一次。你正在评估它两次。
while True:
options = "\n (1) for another entry or (2) to quit. "
# Store the user's choice in a variable.
choice = raw_input(options) # see the comments on why this is raw_input
# Compare the variable with the different possibilities.
if choice == "1": # You should compare str's with str's
subtraction(total)
elif choice == "2":
break
# yada yada yada...