Python:>> =是做什么的?

埃里克

我正在学习python,却偶然发现了一些我不了解的东西。

例如:

x = 50

while x:
    print(x)
    x >>= 1

输出:

50
25
12
6
3
1

因此,我推断如果不是整数或类似的数字,它将除以2并向左舍入。

但是,例如,当我将其更改为x >> = 3时,输出为:

50
6

有人可以解释>> =做什么吗?

如果是这样,这种操作员有哪些有用的应用程序。

马丁·彼得斯(Martijn Pieters)

>>=增强赋值语句>>右移位运算符对于不可变类型,int它与以下内容完全相同

x = x >> 1

将这些位右移x一步。

如果打印xfirst的二进制表示,则可以看到它的作用

>>> 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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章