我正在学习python,却偶然发现了一些我不了解的东西。
例如:
x = 50
while x:
print(x)
x >>= 1
输出:
50
25
12
6
3
1
因此,我推断如果不是整数或类似的数字,它将除以2并向左舍入。
但是,例如,当我将其更改为x >> = 3时,输出为:
50
6
有人可以解释>> =做什么吗?
如果是这样,这种操作员有哪些有用的应用程序。
>>=
为增强赋值语句的>>
右移位运算符。对于不可变类型,int
它与以下内容完全相同:
x = x >> 1
将这些位右移x
一步。
如果打印x
first的二进制表示,则可以看到它的作用:
>>> x = 50
>>> format(x, '08b')
'00110010'
>>> x >>= 1
>>> format(x, '08b')
'00011001'
>>> x = 50
>>> x >>= 3
>>> format(x, '08b')
'00000110'
>>> x
6
每次向右移动等于将地板除以2;因此,将3个移位似乎x
除以2等于3的幂,然后取整为整数。
互补运算符是左移<<
运算符,将左整数乘以2;反之。它是二进制的2的幂的运算符:
>>> x = 6
>>> format(x, '08b')
'00000110'
>>> x <<= 3
>>> x
48
>>> format(x, '08b')
'00110000'
扩展赋值运算符应用于可变类型(例如列表对象)的可变行为时,其行为可以就地进行。例如,listobj += [1, 2, 3]
将更改listobj
自身,而不创建新的列表对象,就像listobj.extend([1, 2, 3])
被调用一样。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句