1. 程式人生 > >Python學習手冊之元組拆包、三元運算子和 else 語句深入

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)

執行結果:

>>>
1
2
3
>>>

這也可用於交換變數,方法是 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)

執行結果:

>>>
3
>>>

三元操作符檢查條件判斷並返回相應的值。如果條件為真,執行 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 語句一起使用,但它也可以和 forwhile 迴圈一起使用。
對於 forwhile 迴圈,如果迴圈正常結束 (當中斷語句不導致迴圈退出) 時,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
>>>

 

 

 

 “在人生的競技場,榮譽和獎賞眷顧那些品行高尚的人。” -- 亞里士多德