“你怎么样?”\&引用;及|&引用;在Python中使用(不在字符串中)
我正在使用Python3,试图理解一些使用“\”和“|”的代码,但不是在字符串上下文中,我通常看到“\”。我在手册中找不到说明这一点的文档:“你怎么样?”\&引用;及|&引用;在Python中使用(不在字符串中),python,syntax,Python,Syntax,我正在使用Python3,试图理解一些使用“\”和“|”的代码,但不是在字符串上下文中,我通常看到“\”。我在手册中找不到说明这一点的文档: def test(this, that): return isinstance(that, something) and \ self.number == that.number and \ self.stuff = that.stuff 也| this.stuff = self.things | som
def test(this, that):
return isinstance(that, something) and \
self.number == that.number and \
self.stuff = that.stuff
也|
this.stuff = self.things | something.stuff
谢谢“\”表示继续下一行
“|”使用as或运算符“\”表示继续下一行
“|”用作OR运算符反斜杠用于行继续。因此:
def test(this, that):
return isinstance(that, something) and \
self.number == that.number and \
self.stuff = that.stuff
相当于:
def test(this, that):
return isinstance(that, something) and self.number == that.number and self.stuff = that.stuff
换句话说,这纯粹是为了开发者的利益,对代码没有实际意义。我想PEP推荐的最大行宽为80个字符,所以如果超过这个宽度,就使用它。但我也应该注意,如果使用括号,则不必使用\即可:
def test(this, that):
return (isinstance(that, something) and
self.number == that.number and
self.stuff = that.stuff
)
管道“|”是位“或”运算符。这是一个常见问题,因此这里有更多信息:反斜杠用于换行。因此:
def test(this, that):
return isinstance(that, something) and \
self.number == that.number and \
self.stuff = that.stuff
相当于:
def test(this, that):
return isinstance(that, something) and self.number == that.number and self.stuff = that.stuff
换句话说,这纯粹是为了开发者的利益,对代码没有实际意义。我想PEP推荐的最大行宽为80个字符,所以如果超过这个宽度,就使用它。但我也应该注意,如果使用括号,则不必使用\即可:
def test(this, that):
return (isinstance(that, something) and
self.number == that.number and
self.stuff = that.stuff
)
管道“|”是位“或”运算符。这是一个常见问题,因此这里有更多信息:
\
是一个换行标记<代码>是按位或。请参阅并在此处解释:\
是一个换行标记<代码>是按位或。请看并在这里解释:这里:我试图理解,这是否有效:test=1 | 2如果test==1:print(“1”)如果test==2:print(“2”)
似乎“test=1 | 2”使“test==3”不像OR那样工作。所以我试图理解,这行吗:test=1 | 2如果test=1:print(“1”)如果test=2:print(“2”)
似乎“test=1 | 2”使“test=3”不像OR那样工作。谢谢,这工作得很好,但我仍然不明白为什么:test=5 | 67
print(test)显示71.运行“bin(5)”和“bin(67)”。您将看到5和67的二进制表示。然后在每个位置按位执行“或”。将结果转换回基数10,您将看到它是71。如果你不知道什么是二进制或按位运算,也许可以读一下,或者提出一个新的问题。对于几乎所有的用例,您都不会执行逐位操作,只能使用Python的“or”,而不是5和67上的“or”。它在1000011和101上运行。它一次只做一点,你期望的结果是什么?也许如果我知道,我可以告诉你如何实现它。是的,这是正确的。负数有点棘手,但正数就是这样。谢谢,这很有效,但我仍然不明白为什么:test=5 | 67
print(test)
显示71。运行“bin(5)”和“bin(67)”。您将看到5和67的二进制表示。然后在每个位置按位执行“或”。将结果转换回基数10,您将看到它是71。如果你不知道什么是二进制或按位运算,也许可以读一下,或者提出一个新的问题。对于几乎所有的用例,您都不会执行逐位操作,只能使用Python的“or”,而不是5和67上的“or”。它在1000011和101上运行。它一次只做一点,你期望的结果是什么?也许如果我知道,我可以告诉你如何实现它。是的,这是正确的。负数有点棘手,但对于正数,它就是这样工作的。