您好,登錄后才能下訂單哦!
and:遇假則假,所以前面為假就不執行和判斷后面直接返回假;前面為真則繼續判斷執行后面直到表達式結束或者出現假為止;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解憂 @Blog(個人博客地址): shuopython.com @WeChat Official Account(微信公眾號):猿說python @Github:www.github.com
@File:python_return.py @Time:2019/10/6 19:48 ? @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! """ ? def fun1(): ????# 所有條件都為真,返回最后一個值 ????return "21" and True ? def fun2(): ????# 檢測所有表達式,直到遇到假為止,并返回假 ????return 54 and 1 and True and 0 ? def fun3(): ????# 遇到真,繼續后面的判斷,直到遇到假為止,如果遇見假直接返回,不再繼續判斷 ????return 1 and True and False and 54 and 0 ? print(fun1()) print(fun2()) print(fun3()) |
輸出結果:
1 2 3 | True 0 False |
小敲門:
1.如果有假的表達式:返回值為第一個假表達式的結果;
2.如果沒有假的表達式:返回值為最后一個真表達式的結果;
?
or:遇真則真,所以前面為真就不執行和判斷后面;前面為假則繼續判斷執行后面直到表達式結束或者出現真為止;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | def fun1(): ????# 所有條件都為真,返回第一個真的表達式 ????return "21" or True ? def fun2(): ????# 所有條件都為假,直到遇到真為止,并返回真,沒有真則返回最后一個假 ????return "" or False or 0 ? def fun3(): ????# 直到遇到真為止,并返回真,不在繼續后面的判斷 ????return 0 or True or False or 54 or 0 ? print(fun1()) print(fun2()) print(fun3()) |
輸出結果:
1 2 3 | 21 0 True |
小敲門:
1.如果有真的表達式:返回值為第一個真表達式的結果;
2.如果沒有真的表達式:返回值為最后一個假表達式的結果;
?
and和or配合使用:其實并沒有先后順序,表達式重前往后依次執行,上一個表達式的結果作為下一個表達式的開始;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | def fun1(): ????''' ????動作分解: ? ????第一步:"21" and True??返回結果 True ????第二步:True or 1??返回結果 True ????注意第二步 True or 1 中的 True 是第一步返回的結果并不是表達式中的True ????''' ????return "21" and True or 1??#等價:return (("21" and True) or 1) ? def fun2(): ????''' ????動作分解: ? ????第一步:"" or False??返回結果 False ????第二步:False and 0??返回結果 False ????注意第二步 False and 0 中的 False 是第一步返回的結果并不是表達式中的 False ????''' ????return "" or False and 0 #等價:return (("" or False) and 0) ? def fun3(): ????''' ????動作分解: ? ????第一步:0 or True??返回結果 True ????第二步:True and False??返回結果 False ????第三步:False or 54??返回結果 54 ????第四步:54 and 0??返回結果 0 ????注意:上一步的結果作為下一步的開始 ????''' ????return 0 or True and False or 54 and 0 #等價:return ((((0 or True) and False) or 54) and 0) ? def fun4(): ????''' ????動作分解: ? ????第一步:0 and True and False??返回結果 0 ????第二步:0 or 54??返回結果 54 ????第三步:54 and 0??返回結果 0 ????注意:上一步的結果作為下一步的開始 ????''' ????return 0 and True and False or 54 and 0 #等價:return (((0 and True and False) or 54) and 0) ? print(fun1()) print(fun2()) print(fun3()) print(fun4()) |
輸出結果:
1 2 3 4 | True False 0 0 |
?
其實作為一個普通函數直接返回字符串或者其他數據類型就完了,為何非要這樣費力不討好?學習學習,學習是一個過程,我想我們應該過程中成長,不然即使寫了一萬次hello world又有何用?return邏輯判斷表達式?/?字典推導式?/?列表推導式?都是在各種開源項目中頻繁使用得寫法,這往往也是編程水平的一種提現。
1.python函數
2.python匿名函數
3.python函數不定長參數*argc,**kargcs
?
轉載請注明:猿說Python???python return邏輯判斷表達式
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。