91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中and和or有什么區別

發布時間:2020-12-14 09:17:41 來源:億速云 閱讀:3625 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關python中and和or有什么區別,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

and 是返回第一個假值,如果都為真,則返回最后一個真值,然后就會忽略其余的比較值

or 是返回第一個真值,如果都為真,則返回第一個真值,然后就會忽略其余的比較值

0、''、[]、()、{}、None 在布爾上下文中為假;其它任何東西都為真

使用 and-or 技巧

例 and-or 技巧介紹

>>> a = "first"
 
>>> b = "second"
 
>>> 1 and a or b
 
'first'
 
>>> 0 and a or b
 
'second'

這個語法看起來類似于 C 語言中的 bool ? a : b 表達式。整個表達式從左到右進行演算,所以先進行 and 表達式的演算。 1 and 'first' 演算值為 'first',然后 'first' or 'second' 的演算值為 'first'。

0 and 'first' 演算值為 False,然后 0 or 'second' 演算值為 'second'。

然而,由于這 種 Python 表達式單單只是進行布爾邏輯運算,并不是語言的特定構成,這是 and-or 技巧和 C 語言中的 bool ? a : b 語法非常重要的不同。如果 a 為假,表達式就不會按你期望的那樣工作了。(你能知道我被這個問題折騰過嗎?不只一次?)

例 and-or 技巧無效的場合

>>> a = ""
 
>>>b = "second"
 
>>> 1 and a or b        
 
'second'

由于 a 是一個空字符串,在 Python 的布爾上下文中空字符串被認為是假的,1 and '' 的演算值為 '',最后 '' or 'second' 的演算值為 'second'。噢!這個值并不是你想要的。

and-or 技巧,bool and a or b 表達式,當 a 在布爾上下文中的值為假時,不會像 C 語言表達式 bool ? a : b 那樣工作。

在 and-or 技巧后面真正的技巧是,確保 a 的值決不會為假。最常用的方式是使 a 成為 [a] 、 b 成為 [b],然后使用返回值列表的第一個元素,應該是 a 或 b中的某一個。

例 安全使用 and-or 技巧

>>> a = ""
 
>>> b = "second"
 
>>> (1 and [a] or [b])[0]
 
''

由于 [a] 是一個非空列表,所以它決不會為假。即使 a 是 0 或者 '' 或者其它假值,列表 [a] 也為真,因為它有一個元素。

到現在為止, 這個技巧可能看上去問題超過了它的價值。畢竟,使用 if 語句可以完成相同的事情,那為什么要經歷這些麻煩事呢?哦,在很多情況下,你要在兩個常量值中進行選擇,由于你知道 a 的值總是為真,所以你可以使用這種較為簡單的語法而且不用擔心。對于使用更為復雜的安全形式,依然有很好的理由要求這樣做。例如,在 Python 語言的某些情況下 if 語句是不允許使用的,比如在 lambda 函數中。

注:這里由于語句是從左向右解釋的。我們可以這樣的來理解。

歸納一下:

and語句:

0 and * 不需要再考慮*是0還是1,結果是0

1 and * 需要考慮*是0還是1來決定結果。

or語句:

1 or * 不需要考慮后面的*,結果為1

0 or * 需要考慮后面的*來決定結果

關于python中and和or有什么區別就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新建县| 桐梓县| 赫章县| 醴陵市| 武冈市| 临朐县| 广灵县| 蒲城县| 盐源县| 章丘市| 万全县| 苗栗市| 普宁市| 祁门县| 新宾| 福安市| 泸西县| 吴桥县| 壤塘县| 竹溪县| 德昌县| 额敏县| 司法| 济南市| 吉安县| 大关县| 南部县| 防城港市| 紫阳县| 基隆市| 子洲县| 古蔺县| 凤山县| 苏尼特左旗| 岳阳县| 黎川县| 嘉善县| 应用必备| 尖扎县| 电白县| 左云县|