21.python return邏輯判斷表達式
- 2020 年 3 月 12 日
- 筆記
21.python return邏輯判斷表達式
最後更新於:2019-10-26 09:21:36

一.return邏輯判斷表達式 and
and:遇假則假,所以前面為假就不執行和判斷後面直接返回假;前面為真則繼續判斷執行後面直到表達式結束或者出現假為止;
Python
# !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())
1234567891011121314151617181920212223242526272829 |
# !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()) |
---|
輸出結果:
Python
True 0 False
123 |
True0False |
---|
小敲門:
1.如果有假的表達式:返回值為第一個假表達式的結果;
2.如果沒有假的表達式:返回值為最後一個真表達式的結果;
二.return邏輯判斷表達式 or
or:遇真則真,所以前面為真就不執行和判斷後面;前面為假則繼續判斷執行後面直到表達式結束或者出現真為止;
Python
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())
123456789101112131415 |
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()) |
---|
輸出結果:
Python
21 0 True
123 |
210True |
---|
小敲門:
1.如果有真的表達式:返回值為第一個真表達式的結果;
2.如果沒有真的表達式:返回值為最後一個假表達式的結果;
三.return邏輯判斷表達式 and和or配合使用
and和or配合使用:其實並沒有先後順序,表達式重前往後依次執行,上一個表達式的結果作為下一個表達式的開始;
Python
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())
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
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()) |
---|
輸出結果:
Python
True False 0 0
1234 |
TrueFalse00 |
---|
四.重點總結
其實作為一個普通函數直接返回字元串或者其他數據類型就完了,為何非要這樣費力不討好?學習學習,學習是一個過程,我想我們應該過程中成長,不然即使寫了一萬次hello world又有何用?return邏輯判斷表達式 / 字典推導式 / 列表推導式 都是在各種開源項目中頻繁使用得寫法,這往往也是編程水平的一種提現。