一個鮮為人知的 Python 的 For 語句小技巧

一個鮮為人知的 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 來中斷循環。有兩種情況可能會導致循環被中斷:

  1. item 被找到然後 break
  2. 循環結束

現在我們可能想知道什麼原因導致循環結束:

  1. 一種方法是設一個 flag 每次循環結束 check 一下。
  2. 另一種方法是使用 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

推薦閱讀:

SpringBoot使用logback實現日誌按天滾動

TAG:Python | 編程技巧 | 編程 |