python中 and和or用法

2021-07-31 15:31:10 字數 1666 閱讀 9454

在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...