'OR' 在检查字符串中是否有 'IS NOT' 或 '!=' 时不起作用?
'OR' Is Not Working When Checking If Something 'IS NOT' Or '!=' In a String?
四处寻找答案,但找不到任何答案。这是我的代码:
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
语句将被取消并且它 returns "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
.
把它写成英文
if char != 'u' or char != 'i':
这种情况可能存在三种情况:
char
既不是'u'
也不是'i'
:条件显然为真。
char
等于 'u'
:现在,条件的第一部分为假,但第二部分为真,因为 'u' != 'i'
。所以 false or true
产生 true
.
char
等于'i'
:和之前一样,只是取反了; true or false
也产生 true
.
所以问题是因为char
不能同时是两个不同的字符,所以你的条件的一部分总是为真。并且由于您将两个部分与 or
组合在一起,因此一个 true
足以决定整个条件的结果;所以条件总是为真。
要解决此问题,请使用 and
,因为您现在要求 char
不等于 'u'
但 也 不等于'i'
:
if char != 'u' and char != 'i':
顺便说一句。这是你工作的倒数 char == 'u' or char == 'i'
。这是因为 De Morgan’s laws.
四处寻找答案,但找不到任何答案。这是我的代码:
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
语句将被取消并且它 returns "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
.
if char != 'u' or char != 'i':
这种情况可能存在三种情况:
char
既不是'u'
也不是'i'
:条件显然为真。char
等于'u'
:现在,条件的第一部分为假,但第二部分为真,因为'u' != 'i'
。所以false or true
产生true
.char
等于'i'
:和之前一样,只是取反了;true or false
也产生true
.
所以问题是因为char
不能同时是两个不同的字符,所以你的条件的一部分总是为真。并且由于您将两个部分与 or
组合在一起,因此一个 true
足以决定整个条件的结果;所以条件总是为真。
要解决此问题,请使用 and
,因为您现在要求 char
不等于 'u'
但 也 不等于'i'
:
if char != 'u' and char != 'i':
顺便说一句。这是你工作的倒数 char == 'u' or char == 'i'
。这是因为 De Morgan’s laws.