每天一小时python官方文档学习(二)————流程控制工具
4. 其他流程控制工具
4.1. if 語句
大多數人都很熟悉的if語句:
if condition1:pass elif condition2:pass else condition3:pass注意python中沒有switch或case語句,所以一個 if ... elif ... elif ... 序列可以看作是其他語言中的 switch 或 case 語句的替代。
4.2. for 語句
Python 中的 for 語句并不總是對算術遞增的數值進行迭代(如同 Pascal),或是給予用戶定義迭代步驟和暫停條件的能力(如同 C),而是對任意序列進行迭代(例如列表或字符串),條目的迭代順序與它們在序列中出現的順序一致。
在遍歷同一個集合時修改該集合的代碼可能很難獲得正確的結果。通常,更直接的做法是循環遍歷該集合的副本或創建新集合:
# 遍歷副本 for user, status in users.copy().items():if status == 'inactive':del users[user]# 創建新集合 active_users = {} for user, status in users.items():if status == 'active':active_users[user] = status4.3. range() 函數
若要遍歷一個數字序列,就可以用range()函數。傳入參數為range(初值,終值,步長),注意左閉右開,終值不包括在內:
>>> for i in range(0,10,3): ... print(i) ... 0 3 6 9range() 所返回的對象在許多方面表現得像一個列表,但實際上卻并不是。此對象會在你迭代它時基于所希望的序列返回連續的項,但它沒有真正生成列表,這樣就能節省空間。
我們稱這樣對象為 iterable(可迭代對象),也就是說,適合作為這樣的目標對象:函數和結構期望中從獲取連續的項直到所提供的項全部耗盡。
4.4. break 和 continue 語句,以及循環中的 else 子句
break 語句,和 C 中的類似,用于跳出最近的 for 或 while 循環。
注意循環中的else子句和條件判斷if中的else不一樣,它會在循環耗盡了可迭代對象 (使用 for) 或循環條件變為假值 (使用 while) 時被執行,但不會在循環被 break 語句終止時被執行。
相比于if語句中的else,它更像try語句中的else, try 語句中的 else 子句會在未發生異常時執行,而循環中的 else 子句則會在未發生 break 時執行。
>>> 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') ... 2 is a prime number 3 is a prime number 4 equals 2 * 2 5 is a prime number 6 equals 2 * 3 7 is a prime number 8 equals 2 * 4 9 equals 3 * 3注意看: else 子句屬于 for 循環, 不屬于 if 語句。
continue 語句則是借鑒自 C 語言,表示繼續循環中的下一次迭代。
4.5. pass 語句
pass 語句什么也不做。當語法上需要一個語句,但程序需要什么動作也不做時,可以使用它:
>>> while True: ... pass # 一直忙,等待鍵盤中斷(按Ctrl+C) ...總結
以上是生活随笔為你收集整理的每天一小时python官方文档学习(二)————流程控制工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每天一小时python官方文档学习(一)
- 下一篇: 嵌入式工业平板电脑的日常维护嵌入式工业平