python return邏輯判斷表達式(21)

技術

一.return邏輯判斷表達式 and

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.如果沒有假的表達式:返回值爲最後一個真表達式的結果;

 

二.return邏輯判斷表達式 or

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.如果沒有真的表達式:返回值爲最後一個假表達式的結果;

 

三.return邏輯判斷表達式 and和or配合使用

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邏輯判斷表達式


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章