您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Python的流程控制是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
if 語句
也許最著名的語句是 if 語句了。
例如:
>>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: ... x = 0 ... print('Negative changed to zero') ... elif x == 0: ... print('Zero') ... elif x == 1: ... print('Single') ... else: ... print('More') ...
這邊可以有 0 個或者多個 elif 部分,并且 else 部分是可選的。關鍵字 elif 是 'else if' 的縮寫,它有助于避免過度縮進。 一個 if... elif ... elif ... 序列可以替代其他語言中的 switch 或 case 語句。
for 語句
Python 中 for 語句有點不同于 C 和 Pascal 中的 for 語句。Python 的 for 語句按照項目在序列中出現的順序迭代任何序列(列表或字符串),而不是總是迭代數學的算術級數(如 Pascal 中),或者讓用戶能夠定義迭代步驟和停止條件(如 C),例如(沒有雙關語):
>>> # 測量字符串: ... words = ['cat', 'window', 'defenestrate'] >>> for w in words: ... print(w, len(w)) ... cat 3 window 6 defenestrate 12
如果你需要修改序列在循環內的迭代(例如復制所選項目),建議你先復制。迭代序列操作并不會隱式地復制。切片方法使這一操作特別方便:
>>> for w in words[:]: # 循環遍歷整個列表的切片副本。 ... if len(w) > 6: ... words.insert(0, w) ... >>> words ['defenestrate', 'cat', 'window', 'defenestrate']
使用 for w in words:,該示例將嘗試創建一個無窮列表,反復的插入 defenestrate 。
range() 函數
如果你需要迭代一系列的數字,內建的函數 range() 會非常有用。如,生成等差數列:
>>> for i in range(5): ... print(i) ... 0 1 2 3 4
給定的停止位是不會出現在生成的序列中的; range(10) 生成 10 個值,是長度為 10 的序列的項的合法指數。可以讓區間開始于其他的數字,或者指定不同的增量(甚至是負數;有時候這被叫做 ‘步長’):
range(5, 10) 5, 6, 7, 8, 9 range(0, 10, 3) 0, 3, 6, 9 range(-10, -100, -30) -10, -40, -70
要遍歷一個序列的索引,你可以像下面這樣組合 range() 和 len() :
>>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): ... print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb
然而,在大多數情況下,使用 enumerate() 函數更方便,可以看 循環技術.
如果你直接打印一個區間的話,會發生奇怪的事情:
>>> print(range(10)) range(0, 10)
在很多方面, range() 返回的對象的行為像列表,但實際上它不是。它是一個對象,當你迭代它的時候,會連續的返回整個序列的項目,但不會真的創建列表,從而節省空間。
我們稱這樣的對象為 可迭代的 ,也就是說,它很適合于當作函數或者構造函數的目標,它們期望從這里可以獲得連續的項目直到耗盡。我們已經看到 for 語句是一個 迭代器 。list() 函數是另一個;它可從可迭代對象中創建列表:
>>> list(range(5)) [0, 1, 2, 3, 4]
break 和 continue 語句,以及循環上的 else 子句
break 語句,類似于 C ,會打破 for 或 while 循環的最內層。
循環語句可能有 else 子句;它會在列表耗盡(用 for )從而終止循環或者條件為假(用 while )的時候被執行,而不是循環被 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: ... # 沒有找到一個因數導致的循環失敗 ... 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
(是的,這是正確的代碼。密切關注: for 循環的 else 子句,不是 if 語句。)
當在循環使中使用 else 子句時,與其說很類似于 if 語句,不如說更類似于 try 語句中的 else 子句:一個 try 語句的 else 子句會在沒有異常發生的時候執行,而一個循環的 else 子句會在沒有 break 發生的時候執行。要了解更多 try 語句和異常,請看 異常處理.
continue 語句,也是從 C 借來的,用于繼續循環的下一次迭代:
>>> for num in range(2, 10): ... if num % 2 == 0: ... print("Found an even number", num) ... continue ... print("Found a number", num) Found an even number 2 Found a number 3 Found an even number 4 Found a number 5 Found an even number 6 Found a number 7 Found an even number 8 Found a number 9
pass 語句
pass 語句什么也不做。它可以用于語法上需要,但程序不需要做什么的時候。例如:
>>> while True: ... pass # 等待鍵盤中斷(Ctrl+C) ...
通常也用于創建小類的時候:
>>> class MyEmptyClass: ... pass ...
以上就是Python的流程控制是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。