【发布时间】:2015-03-31 16:06:39
【问题描述】:
四处寻找答案,但找不到任何东西。这是我的代码:
def translate(string, c = 0):
for char in string:
if char != 'u' or char != 'i':
print string[c]
c += 1
translate("this is fun")
如果我尝试这个,整个if 语句将被取消并垂直返回“t h i s i s f u n”。但是,如果我改为使用 if 语句,它会完美运行。如果我有 2 个或多个 =! 条件,它只会取消 if 语句。下面是 2 个 if 语句,它们按照预期的方式工作:
def translate(string, c = 0):
for char in string:
if char == 'u' or char == 'i':
print string[c]
c += 1
translate("this is fun")
还有:
def translate(string, c = 0):
for char in string:
if char != 'u':
print string[c]
c += 1
translate("this is fun")
那么,OR 是否仅适用于 == 而不适用于 !=?我也试过用is not把它写成英文。
【问题讨论】:
-
你的逻辑错了。对于
char的任何值,char != 'u' or char != 'i'总是为真。您可能应该使用and。 -
英文短语“If char is not 'u' or 'i' then...”在代码中转换为
if char != 'u' and char != 'i'(注意and)。这是因为 or 是在备选方案之间,而不是在测试条件之间。只是其中之一。 -
@T.J.Crowder,感谢您的回答。你几乎只是总结了 poke 的帖子。
标签: python if-statement boolean conditional-statements