Python基礎——for/while迴圈,pythonwhile

來源:互聯網
上載者:User

Python基礎——for/while迴圈,pythonwhile

  Python版本:3.6.2  作業系統:Windows  作者:SmallWZQ

  上學期間,常常遇到這樣的情景:為了懲罰學生,老師會說:“XXX,你先去操場上跑10圈再回來繼續反省。”

  這話雖短,但含義深刻。不過這在當時,我是體會不到其中的“深意”的。直至大學,當接觸到C++編程時,我才領悟到這其中的內涵。原來這句話中飽含編程哲學啊。什麼哲學呢?圍著操場跑道,重複跑10圈……這不就是“迴圈”?

  言歸正傳,for/while迴圈有什麼作用呢?前面講的Python基礎知識中的代碼就不需要迴圈啊。那下面來看一種情形唄~~~

  情形一:求和。求1+2+3的和,並輸出結果。

1 #哈哈,我就不用迴圈,看你咋的2 >>>sum = 1 + 2 + 33 >>>print(sum)4 6

  情形二:再是求和。求1+2+3+4+5+6+7+8+9+10的和,並輸出結果。

1 #哈哈,我還不用迴圈,看你咋的2 >>>sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 103 >>>print(sum)4 55

  情形三:還是求和。求1+2+3+……+99+100的和,並輸出結果。

 1 #哈哈,我就不用迴圈,看你咋的 2 #我可以這樣啊 3  >>>sum = 1 + 2 + 3 + ...... + 99 + 100 4  Traceback (most recent call last): 5    File "<stdin>", line 1, in <module> 6 TypeError: unsupported operand type(s) for +: 'int' and 'ellipsis' 7 #迴圈的魅力就在於此 8 >>>sum = 0 9 >>>for i in range(101):10     sum = sum + i11 >>>print(sum)12 5050

  看來,迴圈不用不行啊。

  range():產生一個整數序列。比如range(3)產生的序列是從0到2的整數:

1 #range()方法2 >>>list(range(3))3 [0,1,2]4 >>>list(range(1,6))5 [1,2,3,4,5]
while迴圈

  學習Python,使用笨方法可不行哦~~~

  就像上面的情形二,直接寫求和運算式。

  為了避免上述情形二中笨重的代碼,可以使用while迴圈:

1 #while迴圈2 >>>sum = 03 >>>i = 04 >>>while i < 11:5 ...    sum = sum + i6 ...    i = i +17 ...8 >>>print(sum)9 55

  在while迴圈內部,i不斷加一,直到i變為11時,不再滿足(i<11)while條件,迴圈退出。

  while迴圈可以用來在任何條件為True的情況下重複執行一個代碼塊。

  因此,while迴圈:只要條件滿足,就不斷迴圈,條件不滿足時退出迴圈。

for迴圈

  一般地,while迴圈已經可以應付大多數的迴圈案例。然而,還是有while迴圈夠不著的地方。這時就需要for...in大顯身手啦。

  比如要為一個集合的每個元素都執行一個代碼塊:

1 #集合2 >>>L = ['I','can','Python','!']3 >>>for i in L:4 ...    print(i)5 ...6 I7 can8 Python9 !

  對於求和公式,for...in迴圈比while迴圈更加簡潔:

 1 #for...in迴圈比while迴圈簡潔 2 #求和公式 3 #for...in迴圈 4 >>>sum = 0 5 >>>for i in range(11): 6 ...    sum = sum + i 7 ... 8 >>>print(sum) 9 5510 #while迴圈11 >>>sum = 012 >>>i = 013 >>>while i < 11:14 ...    sum = sum + i15 ...    i = i + 116 ...17 >>>print(sum)18 55

  註:若可以使用for...in迴圈,就盡量不用while迴圈。

  對於迴圈中的break語句和continue語句,我不推薦大家使用。為什麼呢?其一是容易出錯;其二是可以通過改寫迴圈條件或者修改迴圈邏輯來替代break語句和continue語句。

死迴圈之吻

  對於死迴圈,我相信大家都印象深刻。有些時候,如果代碼寫得有問題,會讓程式陷入“死迴圈”,也就是永遠迴圈下去。

  如何解決死迴圈問題呢?方法如下:

  一、Ctrl + C直接退出程式或強制結束Python進程。

   對於出現編寫Python程式碼時出現意想不到的問題而引起的死迴圈的情況,這種方法非常有效。

空代碼塊

  在Python中,空代碼塊是非法的。

  解決方案如下:

  二、pass語句:什麼都不做。

   為了避免出現空代碼塊Error,方法就是在迴圈代碼塊中加入一個pass語句。

 1 #pass語句 2 >>>for i in range(11): 3 ... 4 ... 5   File "<stdin>", line 3 6  7     ^ 8 IndentationError: expected an indented block 9 #空代碼塊錯誤10 >>>for i in range(11):11 ...    pass12 ...13 >>>

小結

  1. 為序列中的每一個元素執行一個語句塊,或者在條件為真時繼續執行一段語句;

  2. 可以使用continue語句和break語句,但不推薦使用;

  3. 死迴圈問題,Ctrl + C直接退出程式;

  4. 迴圈:讓電腦做重複任務的有效方法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.