元组,检查字符串中的字母

dam*_*ian 4 python tuples

我有这个代码:

prefixes = "JKLMNOPQ" 
suffix = "ack" 

for letter in prefixes: 
    if letter in ("O", "Q"):
        print letter + "u" + suffix
    else:
        print letter + suffix
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我有一个问题的理解.我认为:

if letter in ("O", "Q"):
Run Code Online (Sandbox Code Playgroud)

创建具有2个字母的新元组:O和Q并检查是否存在值字母.

我不确定的是为什么这不能正常工作:

if letter == "O" or "Q":
Run Code Online (Sandbox Code Playgroud)

此代码将"u"添加到所有前缀,而不仅仅是"O"和"Q".

Tim*_*ker 6

所有这些都做同样的事情:

if letter == "O" or letter == "Q":
if letter in ("O", "Q"):
if letter in "OQ":
Run Code Online (Sandbox Code Playgroud)

您的行if letter == "O" or "Q":被评估为if (letter == "O") or "Q":,并且"Q"求值为True,因此该表达式始终返回True.