我有这个代码:
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".
所有这些都做同样的事情:
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.