在python 中,and 和 or 執行布林邏輯演算,如你所期待的一樣。但是它們並不返回布林值,而是返回它們實際進行比較的值之一。
(類似c++裡面的&&和||的短路求值)
( 在布林環境中,0、」、、()、{}、none為假;其它任何東西都為真。但是可以在類中定義特定的方法使得類例項的演算值為假。)
and例項:
[python]view plain
copy
print?
>>> 『a』
and『b』
』b』>>> 」
and『b』
」>>> 』a』
and『b』
and『c』
』c』
>>> 'a' and 'b'
'b'>>> '' and 'b'
''>>> 'a' and 'b' and 'c'
'c'
從左到右掃瞄,返回第乙個為假的表示式值,無假值則返回最後乙個表示式值。
or例項:
[python]view plain
copy
print?
>>> 『a』
or『b』
』a』>>> 」
or『b』
』b』>>> 」
or or{}
{}
>>> 'a' or 'b'
'a'>>> '' or 'b'
'b'>>> '' or or{}
{}
從左到右掃瞄,返回第乙個為真的表示式值,無真值則返回最後乙個表示式值。
and-or搭配:
[python]view plain
copy
print?
>>> a = 「betabin」
>>> b = 」python」
>>> 1
and a or b
』betabin』
>>> 0
and a or b
』python』
>>> a = "betabin"
>>> b = "python"
>>> 1 and a or b
'betabin'
>>> 0 and a or b
'python'
看起來類似於於我們c++中的條件運算子(bool?a:b),是的,當a為true的時候是一樣的。但是,當a為false的時候,就明顯不同了。
如果堅持要用and-or技巧來實現條件運算子的話,可以用種安全的方法:
[python]view plain
copy
print?
>>> a = 」「
>>> b = 」betabin」
>>> (1
and [a] or [b])[0]
」
>>> a = ""
>>> b = "betabin"
>>> (1 and [a] or [b])[0]
''
就是萬能的,把a為假的可能性給抹殺掉,然後通過[0]再獲得(因為要通過[0]獲得元素,所以b也得加上)。
這個and-or技巧主要在lambda中使用。
python中的and和or用法
在python中and和or返回的值並不是true和false這麼簡單。雖然他們看上去和c 中的 和 有些相似。在了解and和or之前,我們先要了解python中的true和false。在python裡面,0 none為假,其它任何東西都為真。ok,在此前提下。看這樣乙個例子 我們大致可以總結出這樣...
Python中read和write用法
讀操作有read readline和readlines函式 看示例 f open 1.txt r data f.read 讀出所有的內容 print data f.close 結果 i m ok i m fine hello world f open 1.txt r data f.readline ...
Python中TCP和UDP用法
socket 簡稱 套接字 是程序間通訊的一種方式,它與其他程序間通訊的乙個主要不同是 它能實現不同主機間的程序間通訊,socket屬於全雙工。關於建立套接字的引數說明 socket.socket addressfamily,type address family 可以選擇 af inet 用於 i...