凡在Python中使用的符号和竖线?

在维基百科页面描述短路计算, &|被列为在Python跃跃欲试的运营商。 这是什么意思,而且,当他们在使用的语言?

--------------解决方案-------------

维基百科页面是错误的,我已经改正了。 |&都没有布尔运算符,即使他们渴望的运营商,这只是意味着他们不短路运营商。 正如你可能知道,这里是如何蟒蛇andor运营商的工作:

>>> def talk(x):
... print "Evaluating: ", bool(x)
... return x
...
>>> talk(1 == 1) or talk(2 == 1) # 2 == 1 is not evaluated
Evaluating: True
True
>>> talk(1 == 1) and talk(2 == 1)
Evaluating: True
Evaluating: False
False
>>> talk(1 == 2) and talk(1 == 3) # 1 == 3 is not evaluated
Evaluating: False
False

据我所知,Python有没有急于布尔运算符,他们将必须显式地编码,比如像这样:

>>> def eager_or(a, b):
... return a or b
...
>>> eager_or(talk(1 == 1), talk(2 == 1))
Evaluating: True
Evaluating: False
True

现在, ab ,当函数被调用自动计算,即使or仍然短路。

至于的使用|& ,用数字使用时,它们是二进制运算符:

>>> bin(0b11110000 & 0b10101010)
'0b10100000'
>>> bin(0b11110000 | 0b10101010)
'0b11111010'

你最有可能使用|这种方式与Python绑定到使用标志,如wxWidgets库:

>>> frame = wx.Frame(title="My Frame", style=wx.MAXIMIZE | wx.STAY_ON_TOP)
>>> bin(wx.MAXIMIZE)
'0b10000000000000'
>>> bin(wx.STAY_ON_TOP)
'0b1000000000000000'
>>> bin(wx.MAXIMIZE | wx.STAY_ON_TOP)
'0b1010000000000000'

当套使用,他们做的交集和并集操作,分别为:

>>> set("abcd") & set("cdef")
set(['c', 'd'])
>>> set("abcd") | set("cdef")
set(['a', 'c', 'b', 'e', 'd', 'f'])

这意味着左操作数和右操作数总是评估。 &是按位与运算和|是位或操作符。

&---->用于按位与位IE位

同样地,

| ---用来或位>

Whenevr您发现任何问题蟒蛇,尽量使用python.org,乐于助人

分类:蟒蛇 时间:2013-01-28 人气:0
本文关键词: 蟒蛇,短路
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.848 (s). 10 q(s)