Python學習手冊之元組拆包、三元運算子和 else 語句深入
在上一篇文章中,我們介紹了 Python 之禪、 Python 程式設計規範和函式引數,現在我們介紹 Python 的元組拆包、三元運算子和對 Python 的 else 語句深入講解。檢視上一篇文章請點選:https://www.cnblogs.com/dustman/p/10052453.html
元組拆包
元組拆包允許你將可迭代中 (大多數是元祖) 的每個項分配給一個變數。
nums = (1,2,3) a,b,c = nums print(a) print(b) print(c)
執行結果:
這也可用於交換變數,方法是a, b = b, a 。由於b, a 在右邊隱式形成元組(b, a) ,然後使用拆包技術。
以星號(*) 作為字首的變數接受其他變數遺留的所有可迭代值。
a, b, *c, d = [1,2,3,4,5,6,7,8,9] print(a) print(b) print(c) print(d)
執行結果:
>>> 1 2 [3, 4, 5, 6, 7, 8] 9 >>>
三元運算子
條件表示式提供if 語句的功能,同時代碼簡潔。儘量避免過度使用,因為它很容易降低可讀性,但是在分配變數時會經常用到。條件表示式被稱為三元運算子。
a = 1 b = 2 h = "" h = a-b if a>b else a+b print(h)
執行結果:
三元操作符檢查條件判斷並返回相應的值。如果條件為真,執行a - b 。如果a 小於b ,則執行a + b 。
x = int(input("輸入第一個數:")) y = int(input("輸入第二個數:")) z = int(input("輸入第三個數:")) #三目運算子的第一種寫法 print((x if (x>y) else y) if ((x if (x>y) else y)>z) else z) #三目運算子的第二種寫法 a=(x if (x>y) else y) print(a if (a>z) else z)
執行結果:
>>> 輸入第一個數:4 輸入第二個數:5 輸入第三個數:8 8 8 >>>
從這兩個列子可以看出用Python的三目運算子用簡短的程式碼完成需要完成的功能。
else 語句深入
else 語句通常與if 語句一起使用,但它也可以和for 或while 迴圈一起使用。
對於for 或while 迴圈,如果迴圈正常結束 (當中斷語句不導致迴圈退出) 時,else 內的程式碼塊被呼叫。
for i in range(0, 10): if i > 10: break else: print("hello world 1") for i in range(0, 10): if i < 1: break else: print("hello world 2")
執行結果:
>>> hello world 1 >>>
第一個for 迴圈執行正常,導致打印出 hello world 1。第二個程式碼由於呼叫了break 那麼else 語句沒有被呼叫。
else語句同樣可以用在try/except 語句裡。在這種情況下,只有在try 語句沒有異常時,才執行else 的程式碼。
try: a = 1/4 except Exception as e: print(e) else: print(a) try: a = 1/0 except Exception as e: print(e) else: print(a)
執行結果:
>>> 0.25 division by zero >>>
“在人生的競技場,榮譽和獎賞眷顧那些品行高尚的人。”-- 亞里士多德