第一:
for i in range(4):
return (1 << i)
Run Code Online (Sandbox Code Playgroud)
第二个:
for i in range(4):
return (2^i)
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么2之间存在差异?
因为幂语法**不是^:
>>> [2**i for i in range(4)]
[1, 2, 4, 8]
>>> [1 << i for i in range(4)]
[1, 2, 4, 8]
Run Code Online (Sandbox Code Playgroud)
注意:^(hat)用于按位异或.