比较Python 3.2中的字符串困难

时间:2012-01-08 16:50:27

标签: python string string-comparison

我有以下

if('y' == input("Enter y to continue")):
    # do something

但无论我输入什么内容都无效?

5 个答案:

答案 0 :(得分:3)

我无法在此重现:

>>> if('y' == input("Enter y to continue: ")):
...    print("Yeah!")
...
Enter y to continue: y
Yeah!
>>>

但无论如何我会采取不同的方式:

answer = input("Enter y to continue: ")
if answer.lower().startswith("y"):
   print("Yeah!")

还可以正确处理YYes!yes, please...等。

答案 1 :(得分:3)

这是Windows上的已知错误,您可以通过执行print(repr(input("put y: "))

来识别它

试试这个

input("put y:").strip().lower() == "y"

答案 2 :(得分:2)

在Windows 7 x64上的3.2.1上正常工作:

>>> if input("Enter y to continue") == 'y': print("ok")
Enter y to continuey
ok

(“continuey”是正确的,它只是“继续”+我的“y”输入。)

答案 3 :(得分:1)

我刚刚遇到过这个问题,这就是我解决它的方法(Python 3.4.1):

i = input ('Enter y to continue: ')
validity = i == 'y'

if validity == True:
    #do something

通过使用布尔类型来识别输入是否等于y,你可以避免这个错误,它也非常简单。

答案 4 :(得分:0)

使用if input("Enter y to continue").lower().startswith('y'):