python學習筆記(六) 迴圈

2021-10-09 15:06:04 字數 2496 閱讀 5393

要計算1+2+3,我們可以直接寫表示式:

>>

>1+

2+36

要計算1+2+3+…+10,勉強也能寫出來。

但是,要計算1+2+3+…+10000,直接寫表示式就不可能了。

為了讓計算機能計算成千上萬次的重複運算,我們就需要迴圈語句。

python的迴圈有兩種,一種是for…in迴圈,依次把list或tuple中的每個元素迭代出來,看例子:

names =

['michael'

,'bob'

,'tracy'

]for name in names:

print

(name)

執行這段**,會依次列印names的每乙個元素:

michael

bobtracy

所以for x in …迴圈就是把每個元素代入變數x,然後執行縮排塊的語句。

再比如我們想計算1-10的整數之和,可以用乙個sum變數做累加:

sum=0

for x in[1

,2,3

,4,5

,6,7

,8,9

,10]:

sum=

sum+ x

print

(sum

)

如果要計算1-100的整數之和,從1寫到100有點困難,幸好python提供乙個range()函式,可以生成乙個整數序列,再通過list()函式可以轉換為list。比如range(5)生成的序列是從0開始小於5的整數:

>>

>

list

(range(5

))[0

,1,2

,3,4

]

第二種迴圈是while迴圈,只要條件滿足,就不斷迴圈,條件不滿足時退出迴圈。比如我們要計算100以內所有奇數之和,可以用while迴圈實現:

sum=0

n =99

while n >0:

sum=

sum+ n

n = n -

2print

(sum

)

在迴圈內部變數n不斷自減,直到變為-1時,不再滿足while條件,迴圈退出。

break

在迴圈中,break語句可以提前退出迴圈。例如,本來要迴圈列印1~100的數字:

n =

1while n <=

100:

print

(n) n = n +

1print

('end'

)

上面的**可以列印出1~100。

如果要提前結束迴圈,可以用break語句:

n =

1while n <=

100:

if n >10:

# 當n = 11時,條件滿足,執行break語句

break

# break語句會結束當前迴圈

print

(n) n = n +

1print

('end'

)

執行上面的**可以看到,列印出1~10後,緊接著列印end,程式結束。

可見break的作用是提前結束迴圈。

continue

在迴圈過程中,也可以通過continue語句,跳過當前的這次迴圈,直接開始下一次迴圈。

n =

0while n <10:

n = n +

1print

(n)

上面的程式可以列印出1~10。但是,如果我們想只列印奇數,可以用continue語句跳過某些迴圈:

n =

0while n <10:

n = n +

1if n %2==

0:# 如果n是偶數,執行continue語句

continue

# continue語句會直接繼續下一輪迴圈,後續的print()語句不會執行

print

(n)

執行上面的**可以看到,列印的不再是1~10,而是1,3,5,7,9。

可見continue的作用是提前結束本輪迴圈,並直接開始下一輪迴圈。

注:要特別注意,不要濫用break和continue語句。break和continue會造成**執行邏輯分叉過多,容易出錯。大多數迴圈並不需要用到break和continue語句,上面的兩個例子,都可以通過改寫迴圈條件或者修改迴圈邏輯,去掉break和continue語句。

有些時候,如果**寫得有問題,會讓程式陷入「死迴圈」,也就是永遠迴圈下去。這時可以用ctrl+c退出程式,或者強制結束python程序。

Python學習筆記(六)

函式 呼叫python內建的函式,可以通過 help fun 進行查詢。舉例 abs x 求x絕對值 cmp x,y 比較兩個數大小,如果 xy,返回 1。int x 把其他資料型別轉換為整數,包括字串型別。str 把其他型別轉換成 str。編寫函式 def my abs x if x 0 retu...

Python學習筆記(六)

函式練習題 1 寫函式,檢查傳入字典的每乙個value的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給呼叫者。dic def dict func dic for key,value in dic.items if len value 2 value value 0 2 dic key...

Python學習筆記六

python課堂筆記六 常用模組已經可以在單位實際專案中使用,可以實現運維自動化。無需手工備份檔案,資料庫,拷貝,壓縮。常用模組 time模組 time.time time.localtime time.strftime os模組 主要針對作業系統的一些方法,如 切換目錄 sys模組 跟python...