2024-05-15 02:52:35 发布
网友
我是一个新的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]
[i%-3&-4:i%-5&8^12]
非常感谢你!在
:是范围符号,意思是给我list[start:end]中开始和结束之间的列表元素。在
:
list[start:end]
%是模运算符, &是二进制(按位)和运算符,因此第一部分:
%
&
i%-3&-4
等于mod(i, -3) & -4
mod(i, -3) & -4
^是异或运算符,因此第二部分:
^
i%-5&8^12
等于mod(i, -5 ) & 8^12
mod(i, -5 ) & 8^12
模运算符将第一个参数除以第二个参数得到余数。在
如果您需要更多地了解python二进制(按位)运算符look here
如注释中所述,如果得到的第一个列表是空的,那么or语句后面的最后一部分返回一个范围1 to n+1。在
1 to n+1
该语句中的反勾号是repr()函数的Python2语法。 有关详细信息,请参见repr documentation
:
是范围符号,意思是给我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
相关问题 更多 >
编程相关推荐