我是一名新的Python学习者。我被以下一些代码拦截了:
return ['FizzBuzz'[i%-3&-4:i%-5&8^12]or`i`for i in range(1,n+1)]
特别是它的含义:[i%-3&-4:i%-5&8^12]
非常感谢你!
答案 0 :(得分:2)
:
是范围符号,意思是在list[start:end]
中为我提供开始和结束之间的列表元素。
%
是模运算符,
&
是二进制(按位)和运算符,因此第一部分:
i%-3&-4
等于mod(i, -3) & -4
^
是独占或运算符,因此第二部分:
i%-5&8^12
等于mod(i, -5 ) & 8^12
模运算符从第一个参数除以第二个参数得到余数。
如果您需要了解有关python二进制(按位)运算符look here
的更多信息如评论中所述,如果没有后向抽搐``,则or语句后面的最后一部分返回1 to n+1
的范围,如果得到的拳头列表为空。
返回标记,在该语句中是repr()函数的Python2语法。 有关详细信息,请参阅repr documentation