**:
迴圈結構可以幫助我們優雅的完成重複性勞動,不必為了一些規律性的重複工作耗費過多的精力。
如果我們想要計算0~100之和,我們只需要簡單的使用迴圈結構寫幾行**即可求出結果,不需要寫100行加法命令。
python中的迴圈可以分為for迴圈和while迴圈兩種,我們先來看一下for迴圈的用法。
sum = 0
for i in range(1, 100 + 1):
sum += i
print(sum)
輸出為
5050
上面的4行**完成了從0~100的求和運算。
第3行使用了for迴圈結構,格式為 for 元素 in 集合 :。在這裡,我們使用了range函式,這個函式返回了正整數1~100的集合。
range的使用方法如下:
print(range(10)) # 返回,即0~9的整數集合
print(range(3, 10)) # 返回,即3~9的整數集合
print(range(3, 10, 2)) # 返回,即從3開始,間隔為2,並且小於10的整數集合
在第1次迴圈開始時,i取值為range集合的第1個元素並進入迴圈體,在第4行中對變數sum進行加賦值操作,之後**回到第3行,i取值為range集合的第2個元素。以此類推,直到取完range集合的最後乙個元素,**跳出迴圈,執行迴圈體外第6行的輸出操作。
for迴圈執行的次數與集合元素數量保持一致。
和for迴圈的方式不同,while迴圈是通過條件來控制迴圈的。
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print(sum)
上面的**同樣完成了從0~100的求和運算。
while迴圈的語法結構為 while 條件 : ,條件為true時進入迴圈體,直到條件為false時跳出迴圈。
這裡我們注意到,使用while進行累加操作時,我們除了需要定義用來儲存結果的變數sum外,我們還需要定義乙個游標變數i,並且在迴圈體中對i進行加賦值操作,如果刪除第5行**,程式將進入死迴圈。死迴圈會無休止的執行下去,耗費大量的系統效能。因此當我們使用while迴圈時,一定要注意死迴圈問題。
break可以跳出當前正在進行的迴圈。
例如:我們要從乙個列表([6, 9, 4, 3, 7, 11])中找到第乙個小於5的數字,並返回這個數字在列表中的位置。
上面的例子要求我們返回列表中第乙個小於5的元素的位置。通過觀察我們發現,小於5的元素出現在列表中的第3位,列表的元素一共6個,如果全部迴圈完畢需要進行6輪迴圈。假如我們的列表元素個數為10000條,那麼我們需要迴圈10000次,但是在第3次迴圈時我們就已經得到結果了,之後的迴圈沒有任何意義。在這種情況下,我們可以使用break來跳出迴圈。
# for迴圈寫法
list = [6, 9, 4, 3, 7, 11]
index = 1 # 小於5的數字所在的位置
for num in list :
if num < 5 :
break
else :
index += 1
if index > len(list) :
print('列表中沒有小於5的數字')
else :
print('列表中第乙個小於5的數字在第%d位' % index)
# while迴圈寫法
list = [6, 9, 4, 3, 7, 11]
index = 1 # 小於5的數字所在的位置
while index <= len(list) :
num = list[index - 1]
if num < 5 :
break
else :
index += 1
if index > len(list) :
print('列表中沒有小於5的數字')
else :
print('列表中第乙個小於5的數字在第%d位' % index)
在這裡我們使用了python提供的len函式,len函式需要乙個集合作為輸入引數,返回集合中元素的數量。
結果均為
列表中第乙個小於5的數字在第3位
continue可以忽略迴圈體中在其之後的**,直接進入下一輪迴圈。
例如:我們要從乙個列表([6, 9, 4, 3, 7, 11])中找到所有小於5的數字,並返回這些數字之和。
# for迴圈寫法
list = [6, 9, 4, 3, 7, 11]
sum = 0 # 小於5的數字之和
for num in list :
if num >= 5 :
continue
sum += num
print('陣列中小於5的數字之和為%d' % sum)
# while迴圈寫法
list = [6, 9, 4, 3, 7, 11]
index = 0
sum = 0 # 小於5的數字之和
while index < len(list) :
num = list[index]
index += 1
if num >= 5 :
continue
sum += num
print('陣列中小於5的數字之和為%d' % sum)
輸出為
陣列中小於5的數字之和為7
今天我們學習了for迴圈和while迴圈。
掌握了break和continue的使用場景。
Python基礎06 迴圈
迴圈用於重複執行一些程式塊。從上一講的選擇結構,我們已經看到了如何用縮進來表示程式塊的隸屬關係。迴圈也會用到類似的寫法。for迴圈需要預先設定好迴圈的次數 n 然後執行隸屬於for的語句n次。基本構造是 for 元素 in 序列 statement 舉例來說,我們編輯乙個叫fordemo.py的檔案...
Python基礎06 迴圈
迴圈用於重複執行一些程式塊。從上一講的選擇結構,我們已經看到了如何用縮進來表示程式塊的隸屬關係。迴圈也會用到類似的寫法。for迴圈 for迴圈需要預先設定好迴圈的次數 n 然後執行隸屬於for的語句n次。基本構造是 for 元素 in 序列 statement舉例來說,我們編輯乙個叫fordemo....
Python高階06 迴圈物件
通過上面一講,我們再次熟悉了python裡的迴圈控制。現在,我們將接觸迴圈物件 iterable object 這一講的主要目的是為了大家在讀python程式的時候對迴圈物件有乙個基本概念。迴圈物件的並不是隨著python的誕生就存在的,但它的發展迅速,特別是python 3x的時代,從zip 或者...