我原来的python是:
if i.count('<') and i.count('>') == (0 or 1):
pass
else:
print('error')
Run Code Online (Sandbox Code Playgroud)
这传递i ='<>'并失败,i ='<>>'这就是我想要的.然而它也失败了i =''我不想要也无法理解.
在ipython3中,我已经摆弄了这么长时间才能归结为抽象的
0 == (0 or 1)
Run Code Online (Sandbox Code Playgroud)
奇怪地返回False.我猜这与0 =假1 =真有关,但即使经过相当多的谷歌后,它对我来说仍然没有意义.
我是否真的需要将原始代码改写为更长时间,而且我的想法更加丑陋:
(i.count('<') and i.count('>') == 0) or (i.count('<') and i.count('>') == 1)
Run Code Online (Sandbox Code Playgroud)
0 or 1始终计算为1(表达式x or y首先计算x;如果x为true,则返回其值;否则,y计算并返回结果值. - 来自布尔运算)
>>> 0 or 1
1
Run Code Online (Sandbox Code Playgroud)
0 == (0 or 1)相当于0 == 1- > False.
要检查x是否0还是1,做到以下几点:
x == 0 or x == 1
Run Code Online (Sandbox Code Playgroud)
要么
x in (0, 1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |