Fizzbuzz使用boolean' not' x运算符

时间:2017-03-21 09:43:21

标签: 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) * '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,这似乎是错误的方式。

1 个答案:

答案 0 :(得分:0)

在最后一行i=1515%3=015%5=0not 15%3 = 1和not 15%5 = 1。 1相当于True,这就是打印True的原因。