Python 使用布尔';不是';x运算符
如果您能帮助理解此python代码,我将不胜感激,因为我不熟悉编码/python:Python 使用布尔';不是';x运算符,python,boolean,fizzbuzz,Python,Boolean,Fizzbuzz,如果您能帮助理解此python代码,我将不胜感激,因为我不熟悉编码/python: for I in range (1,16):print ( not i%3) * 'FIZZ' + ( not i%5) * 'BUZZ' or i 当我运行此代码时: for i in range (1,16): print i, print i%3, print i%5, print (not i%3), print (not i % 5), print ( not i%3) * '
for I in range (1,16):print ( not i%3) * 'FIZZ' + ( not i%5) * 'BUZZ' or i
当我运行此代码时:
for i in range (1,16):
print i,
print i%3,
print i%5,
print (not i%3),
print (not i % 5),
print ( not i%3) * 'FIZZ' + ( not i%5) * 'BUZZ' or i
我添加了一些来尝试理解结果
我得到:
1 1 1 False False 1
2 2 2 False False 2
3 0 3 True False FIZZ
4 1 4 False False 4
5 2 0 False True BUZZ
6 0 1 True False FIZZ
7 1 2 False False 7
8 2 3 False False 8
9 0 4 True False FIZZ
10 1 0 False True BUZZ
11 2 1 False False 11
12 0 2 True False FIZZ
13 1 3 False False 13
14 2 4 False False 14
15 0 0 True True FIZZBUZZ
例如,当
(不是i%3)
返回0
时,不确定为什么True
返回FIZZ/BUZZ
?我认为它应该返回False
,这似乎是错误的方向。在最后一行,I=15
<代码>15%3=0和15%5=0
,因此不是15%3
=1和不是15%5
=1。1相当于True
,这就是打印True
的原因。不是0
与True
相同,因为0
相当于False
亲爱的米里亚姆,谢谢你的解释,非常感谢。阿拉斯泰尔