初學者應該知道的4個Python隱藏功能?
學無止境。
沒有任何一本書或網站能包含所有需要了解的Python內容,甚至官方文件也不能,Python的可能性可以說是無限的。
Python的編程也永遠也學不完,你可能會不斷發(fā)現Python中有用的新功能,而且需要學習的內容太多了。
多年來我一直在用Python編寫代碼,也發(fā)現了一些有趣的、非常獨特的Python功能,這些都是在其他編程語言中找不到的。
下面是Python初學者可能會覺得有用的4個隱藏Python功能。
一起來看看吧~
1. 比較運算符鏈接
要檢查a中的值是否在0到100的范圍內,需要進行兩次比較,并使用and組合起來:0 <= a and a <= 100。這很容易。
但是可以以一種更易于閱讀的直觀的方式來將這些比較鏈接起來:0 <= a <= 100。解釋器將它們分開,并讀取比較操作,如0 <= a and a <= 100。
- a = 25
- 0 <= a <= 100 # True
- 0 <= a and a <= 100 # True
- # The two expressions above are equivalent in Python
鏈接還可以更長,比如0 < a < 10 < b < 100。
2. 值的交換
如何在Python中交換兩個對象的值?簡單!只需創(chuàng)建一個臨時對象temp,就像在其他語言中所做的那樣。
- # Standard way to swap values oftwo objects in other languages
- temp = a
- a = b
- b = temp
但這不是很易讀,也不好看。實際上,使用Python中的一行代碼就可以輕松地交換這些值。
- # Standard Python way to swapvalues
- b, a = a, b
為什么會這樣?解釋器首先計算右邊的值,并在內存中創(chuàng)建一個元組(a,b),然后在左側,將元組中的兩個元素取出并分別賦給b和a。它實際上交換了分配給a和b的對象。
3. For-else循環(huán)
你熟悉Python中的條件語句嗎?
while循環(huán),ok了。
for循環(huán)也不難。
if else語句也學會了。
那for else語句呢?
- deftest(nums):
- for i in nums:
- if i ==0: # if the condition is satisfied, it hits break and the else block will not run
- print('There is a 0.')
- break
- else:
- print('There are no 0s.')
- test([1,2,3,0]) # There is a 0.
- test([1,2,3]) # There are no 0s.
代碼來自GitHub,viewrawfor-else.py
else塊中的代碼只有在for循環(huán)沒有遇到break語句且正常退出時才會運行。
那么這個for-else循環(huán)有什么用呢?可能用戶已經三次嘗試在一個for _ in range(3)循環(huán)中輸入正確的密碼,只有正確的密碼才會激活break語句。連續(xù)3次猜錯密碼的結果就進入else塊,例如鎖定系統(tǒng)。
4. 擴展切片
可以使用語法a[start:stop:step]對列表a切片,并使用一個可選的第三參數。讀取從起始點開始,到結束點結束的部分序列,步長為step。步長必須是整數,也可以是負數。
- a = list(range(10))
- print(a[::2]) # [0, 2, 4, 6, 8]
- print(a[3::-1]) # [3, 2, 1, 0]
通過將step參數設置為-1,可以簡單地用[::-1]來反轉列表。如果未指定step,則默認為1,這意味著沒有元素跳過或列表反轉。
掌握這4個隱藏Python功能,擺脫“菜鳥稱號”吧。