Python:用于选项处理的True循环在执行前需要用户输入两次

时间:2015-07-06 00:22:39

标签: python while-loop options

我在这个程序的最后有一个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参考资料,并且我已在此网站上针对类似案例进行了一系列搜索。我确信这是一件我想念的简单事情,但我并不是靠自己来做。提前感谢任何回复。

1 个答案:

答案 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...