一個鮮為人知的 Python 的 For 語句小技巧
不論哪種語言,循環都是重要的組成部分,同樣的,For 循環也是 Python 中相當重要的組成。不過很多初學者可能對他們了解不夠深入,讓我們來一一介紹一下 For 的進階技巧。
讓我們從大家都知道的開始。我們肯定知道它的這種簡單的用法:
fruits = [apple, banana, mango]for fruit in fruits: print(fruit.capitalize())# Output: Apple# Banana# Mango
這是非常基礎的循環結構。現在我們來點鮮為人知的技巧,看看 Python 的 For 能起什麼幺蛾子。
else
For 循環還有個 else 語句,但是很多時候我們不怎麼用,對它不甚了解。當循環正常的結束時 else 可以執行。這意味著循環沒有受到任何 break,一旦你明白如何使用它們,這個技巧將會變得非常有用,我在很久之後才完全掌握,現在簡直離不開。
常見的結構就是運行個循環然後尋找一個 item。如果 item 被找到了,我們使用 break 來中斷循環。有兩種情況可能會導致循環被中斷:
- item 被找到然後 break
- 循環結束
現在我們可能想知道什麼原因導致循環結束:
- 一種方法是設一個 flag 每次循環結束 check 一下。
- 另一種方法是使用 else 語句。
這是基礎的 for/else 結構循環:
for item in container: if search_something(item): # Found it! process(item) breakelse: # Didnt find anything.. not_found_in_container()
這是官方文檔的簡單 example:
for n in range(2, 10): for x in range(2, n): if n % x == 0: print(n, equals, x, *, n/x) break
現在我們可以試試剛才說到的 else,這會很有趣,如果有素數它會告訴我們:
for n in range(2, 10): for x in range(2, n): if n % x == 0: print( n, equals, x, *, n/x) break else: # loop fell through without finding a factor print(n, is a prime number)
原文:Python Tips 0.1 documentation
推薦閱讀: