帮助理解这个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) * '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
例如,当True
返回FIZZ/BUZZ
时,不确定为什么(not i%3)
,返回0
?我认为它应该返回False
,这似乎是错误的方式。
答案 0 :(得分:0)
在最后一行i=15
。 15%3=0
和15%5=0
,not 15%3
= 1和not 15%5
= 1。 1相当于True
,这就是打印True
的原因。