我在Python中遇到了一个非常奇怪的问题。这两篇文章似乎没有帮助:验证Python中用户输入字符串的有效性和Python中比较字符串的最快方法。
我编写了以下小程序test.py:
我编写了以下小程序test.py:
import sys
while True:
print("\n")
print("Type exit to exit: ")
inputvar = str(input())
print("Input: "+inputvar)
if inputvar == 'exit':
print("Exiting!")
sys.exit("\n\nProgram quit.")
else:
print("Still here")
当前版本似乎不能使用exit
,'exit'
或"exit"
退出。使用input()
而不是str(input())
似乎没有什么区别,使用is
或in
而不是==
也没有区别。
我正在使用Windows 7上的Python 3.2。
input()
已经返回一个字符串,所以str(input())
不会有任何区别。is
比较身份,而不是相等性,所以对于字符串比较来说是一个糟糕的选择;使用==
是正确的做法。如果你在代码中说'exit'!='exit'
,那么你肯定有一个严重的问题;你确定没有引入一些空白字符吗?尝试使用inputvar.strip()
或print(repr(inputvar))
来查看发生了什么。 - jonrsharpeinputvar.strip()
,以防万一存在一些尾随空格。 - ilent2