你做什么>&燃气轮机;及<&书信电报;用Python是什么意思?

你做什么>&燃气轮机;及<&书信电报;用Python是什么意思?,python,syntax,operator-keyword,Python,Syntax,Operator Keyword,我注意到我可以做像2>2这样的事情来获得250 此外,我还可以在打印中使用>: print >>obj, "Hello world" 这里发生了什么?这些是按位移位运算符 引述: 返回x,位右移y位。这与将x除以2**y相同,这些是 x >> y x>y返回x,位移到 就在这些地方。这与用2**y对x进行//”相同 我认为这是一个重要的问题,但尚未得到回答(OP似乎已经了解轮班操作员)。让我试着回答一下,您示例中的>>运算符用于两个不同的目的。在C++术语中,这个运算

我注意到我可以做像
2>2
这样的事情来获得250

此外,我还可以在
打印中使用
>

print >>obj, "Hello world"

这里发生了什么?

这些是按位移位运算符

引述:

返回
x
,位右移y位。这与将
x
除以
2**y

相同,这些是

x >> y
x>y返回x,位移到 就在这些地方。这与用2**y对x进行//”相同


我认为这是一个重要的问题,但尚未得到回答(OP似乎已经了解轮班操作员)。让我试着回答一下,您示例中的>>运算符用于两个不同的目的。在C++术语中,这个运算符重载。在第一个示例中,它用作位运算符(左移位),而在第二个场景中,它仅用作输出重定向。i、 e

2 << 5 # shift to left by 5 bits
2 >> 5 # shift to right by 5 bits
print >> obj, "Hello world" # redirect the output to obj, 
更新: 在python 3中,可以按如下方式直接给出file参数:

print("Hello world", file=open("foo.txt", "a")) # hello world now saved in foo.txt

另一个涉及obj“Hello World”
的情况是Python 2中的
print
语句的“print chevron”语法(在Python 3中删除,由
print()
函数的
file
参数替换)。将输出传递给
obj.write()
方法,而不是写入标准输出。典型的例子是具有
write()
方法的文件对象。请参阅最近问题的答案:

12>2

十二,


48的二进制值为“11 0000”,执行上述语句后,右移(2处右移)返回值12,其二进制值为“00 1100”。

它们是位移位运算符,存在于许多主流编程语言中,
是右移,它们可以如下表所示,假设一个整数在内存中只占用1字节

| operate | bit value | octal value |                       description                        |
| ------- | --------- | ----------- | -------------------------------------------------------- |
|         | 00000100  |           4 |                                                          |
| 4 << 2  | 00010000  |          16 | move all bits to left 2 bits, filled with 0 at the right |
| 16 >> 2 | 00000100  |           4 | move all bits to right 2 bits, filled with 0 at the left |
|操作|位值|八进制值|说明|
| ------- | --------- | ----------- | -------------------------------------------------------- |
|         | 00000100  |           4 |                                                          |
|4>2 | 00000100 | 4 |将所有位向右移动2位,左侧填充0|

我在Python2.7和Python3.8上验证了以下内容

我确实打印了(100) 是“按位”运算符。


在这里,现在你可以将这些符号插入搜索引擎,让它实际搜索它们:@user2357112的可能副本,这将非常有用,谢谢。对于那些说这是一个基本问题的人来说,这可能是,但我没有按位运算符的概念,所以我从来没有想过要在文档中查找它…@joaquin它现在是google for python的第一个结果是大于。也许举个例子会有所帮助,在python中键入一系列这样的结果:
print bin(1)
print bin(1>1)
,等等。您可以在无需解释的情况下看到它是如何工作的。位移位运算符需要2个操作数,所以为什么操作数是“print”操作数2是一个对象吗?在
print>>obj中,“Hello world”
是对OP提供的上下文(因此OP知道)的回答,而不是对所问问题的回答。@Qi Fan@z33k该问题经过编辑,添加了引用,以便在该答案编写一年多后打印出来。原始问题只提到
2>2
_(ツ)_/供参考,Python代码中右移运算符的另一种常见用法将出现在Airflow文件中。Airflow框架重载“>>”运算符,以指示一个任务位于另一个任务的上游:您可以通过
\uu rshift\uuuu
\uu lshift\uuuu
方法覆盖这些运算符。我得到了2>>5等于0。我认为它应该等于0.0001?@teter123f该操作是二进制的。它不是十进制操作。正是为了寻找这个解释。没有错误,它只是不限于每个数字8位。两个>运算符应该使用相同的逻辑。但是@Nandish为什么…它们都使用相同的逻辑
print("Hello world", file=open("foo.txt", "a")) # hello world now saved in foo.txt
| operate | bit value | octal value |                       description                        |
| ------- | --------- | ----------- | -------------------------------------------------------- |
|         | 00000100  |           4 |                                                          |
| 4 << 2  | 00010000  |          16 | move all bits to left 2 bits, filled with 0 at the right |
| 16 >> 2 | 00000100  |           4 | move all bits to right 2 bits, filled with 0 at the left |
<< Mean any given number will be multiply by 2the power
for exp:- 2<<2=2*2'1=4
          6<<2'4=6*2*2*2*2*2=64
>>> help("symbols")

+-------------------------------------------------+---------------------------------------+
| Operator                                        | Description                           |
|=================================================|=======================================|
| "<<", ">>"                                      | Shifts                                |
+-------------------------------------------------+---------------------------------------+
| "&"                                             | Bitwise AND                           |
+-------------------------------------------------+---------------------------------------+
| "|"                                             | Bitwise OR                            |
+-------------------------------------------------+---------------------------------------+
| "~x"                                            | bitwise NOT                           |
+-----------------------------------------------------------------------------------------+
| "^"                                             | Bitwise XOR                           |
+-------------------------------------------------+---------------------------------------+

>>> x = {"key1": "value1 from x", "key2": "value2 from x"}
>>> y = {"key2": "value2 from y", "key3": "value3 from y"}
>>> x | y
{'key1': 'value1 from x', 'key2': 'value2 from y', 'key3': 'value3 from y'}
>>> y | x
{'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'}