Python循环不会退出特定的用户输入

时间:2015-08-17 15:44:32

标签: python loops

很抱歉,如果这是一个常见问题,但到目前为止我查找的每个解决方案似乎都不起作用。

基本上,我想在用户输入“结束”时退出此循环但由于某种原因它实际上不会破坏循环。

command = input("Enter command: ") + "\r\n"
while(True):
    print(command)
    if command == "end":
        break
    else:
        tn.write(command.encode("utf-8"))
        ret1 = tn.read_until(b"_DNE", timeout = 10)
        print(ret1)
        command = input("Enter command: ") + "\r\n"

如果用户输入“end”,它似乎忽略了“if”语句,只是直接跳到“else”

2 个答案:

答案 0 :(得分:2)

不要试图将\r\n附加到用户input的末尾,而是使用raw_input而不是

command = raw_input("Enter command: ")
while(True):
    print(command)
    if command.rstrip('\r\n') == "end":
        break
    else:
        tn.write(command.encode("utf-8"))
        ret1 = tn.read_until(b"_DNE", timeout = 10)
        print(ret1)
        command = raw_input("Enter command: ")

答案 1 :(得分:0)

由于您在输入中添加了\r\n,因此无论何时输入end,变量command都会将end\r\n作为字符串值,而不是end。因此,当用户输入end时,if语句不会检测到它。