我在if ... then语句中发生了一个奇怪的语法情况.不太确定修复是什么......
x1 = 'minus'
if x1 == 'minus':
print('OK')
if x1 != 'minus':
print('this should not print')
y = {'direction':'minus'}
x2 = y['direction']
if x2 != 'plus' or x2 != 'minus':
print("huh...")
if x1 != 'plus' or x1 != 'minus':
print("??")
if x1 == 'plus' or x1 == 'minus':
print("wait...")
print(x2)
if (x2 != 'plus') or (x2 != 'minus'):
print("it wasn't the parenthesis...")
print(x2 != 'plus')
print(x2 != 'minus')
print(x2)
Run Code Online (Sandbox Code Playgroud)
输出是:
>OK
>huh...
>??
>wait...
>it wasn't the parethesis...
>True
>False
>minus
Run Code Online (Sandbox Code Playgroud)
如何在python中创建一个只在python中触发的逻辑门x != 'minus' or 'plus'?
如何在python中创建一个逻辑门,只有在python中x!='minus'或'plus'时才触发?
x是始终不等于其中的一个(想想看:如果是plus,该测试是不正确的,但plus不是minus,所以其他测试是如此),因此,使用or你有永远是真实的!
你可能想要的是这样的:
if not (x == 'minus' or x == 'plus')
Run Code Online (Sandbox Code Playgroud)
应用De Morgan定律,您还可以使用:
if x != 'minus' and x != 'plus'
Run Code Online (Sandbox Code Playgroud)
你也可以使用更多的Pythonic:
if x not in ('minus', 'plus')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |