Python 中的 while 循環。 它是如何工作的,使用示例

循環是任何語言的主要工具之一。 Python中有兩個基本循環,其中之一是while。 考慮一下,也為了更好地理解圖片,再來一張。 確實,與類似的東西相比,任何材料都更容易理解,不是嗎?

循環的概念

當某個動作需要多次執行時,需要循環。 這是非常簡單的,因為實際上循環的應用範圍要廣泛得多。 Python中有兩種主要的循環類型:for和while。 最受歡迎的是for。

除了特定的操作之外,您還可以將不同的代碼段循環到某個點。 這可以是一定次數,或者只要特定條件為真。

在我們開始理解循環和 while 的類型之前,我們仍然需要理解什麼是迭代。 這是在當前應用程序運行的當前週期內重複一個動作或一系列動作。

循環

我們的 For 循環不是計數器,就像在許多其他語言中一樣。 它的任務是枚舉一定的值序列。 這是什麼意思? 假設我們有一個元素列表。 首先,循環採用第一個、第二個、第三個,依此類推。

Python中這個循環的好處是你不需要確定元素的索引就知道什麼時候退出循環。 一切都會自動完成。

>>> spisok = [10, 40, 20, 30]

>>> 對於 spisok 中的元素:

… 打印(元素 + 2)

...

12

42

22

32

在我們的示例中,我們使用了變量 元素 在 for 命令之後。 一般來說,名字可以是任何東西。 例如,一個流行的名稱是 i。 並且在每次迭代中,這個變量都會從列表中分配一個特定的對象,我們稱之為適當的詞。

在我們的例子中,列表是一個數字序列 10,40,20,30。 在每次迭代中,相應的值都會出現在變量中。 例如,一旦循環開始,變量 元素 賦值為 10。 在下一次迭代中,十變為數字 40,第三次變為數字 20,最後,在循環的最後一次迭代中,變為 30。

循環結束的信號是列表中元素的結束。

如果您需要循環來執行經典的值枚舉,就像在其他編程語言中一樣,您應該創建一個列表,其中包含一系列自然數,直到我們需要的值。

>>> spisok = [1,2,3,4,5]

或者使用函數 倫(), 來確定列表的長度。 但在這種情況下,最好使用循環 儘管, 因為不需要使用變量。

如果需要改變列表中值的順序,循環 對於 來救援。 為此,在每次迭代中,必須為列表的每個元素分配一個適當的值。

While循環

不同於循環 對於,它只是簡單地迭代序列的值,循環 有更多用途。 這種循環的名稱被翻譯為“還”。 也就是“直到”。

這是在所有編程語言中都可以找到的通用循環。 在某些方面它類似於條件運算符 紅豆杉, 它執行檢查以查看是否滿足特定條件。 僅與條件運算符相反, 在每次迭代時執行檢查,而不僅僅是一次。 只有當條件為假時,循環才會結束並執行其後的命令。 簡而言之,如果他工作的情況不再有效。

如果我們畫一個循環 簡單地說,這是使用這樣的方案完成的。Python 中的 while 循環。 它是如何工作的,使用示例

程序的主分支(在循環外運行)在此圖中用藍色矩形表示。 綠松石代表週期的主體。 反過來,菱形是在每次迭代時檢查的條件。

週期 可能導致兩個異常:

  1. 如果在循環開始時邏輯表達式沒有返回真,那麼它根本就沒有開始,在執行之前已經完成。 一般來說,這種情況是正常的,因為在某些情況下,應用程序可能不會在循環體中提供表達式的存在。
  2. 如果表達式始終為真,則可能導致循環。 也就是無限滾動的循環。 因此,在這樣的程序中,循環或程序中應該總是有一個退出語句。 但是,如果程序能夠確定特定條件的真假,就會出現這種情況。 如果她沒有這樣做,則程序終止時返回錯誤。 或者您可以處理錯誤,然後,如果發生錯誤,將執行某些代碼。

如何處理錯誤可能有很多選項。 例如,程序可能會要求用戶正確輸入數據。 因此,如果一個人在只能是正數的情況下指示負數,或者在只能是數字的情況下輸入字母,程序可以告訴它。

While 循環示例

這是在這種情況下處理錯誤的代碼示例。

n = input(“輸入一個整數:”) 

而類型(n)!= int:

    嘗試:

        n = 整數(n)

    除了ValueError:

        print(“輸入錯誤!”)

        n = input(“輸入一個整數:”) 

如果 n % 2 == 0:

    打印(“偶數”)

其他:

    打印(“奇數”)

請記住,Python 使用冒號來聲明復雜的代碼結構。

在上面的代碼中,我們定義了一個條件,即我們應該檢查數字是否為整數。 如果是,則返回 false。 如果不是,那麼是真的。

在代碼的第二部分中,使用了運算符 if,我們使用 % 運算符求除法運算後的餘數。 下一步是檢查數字是否為偶數。 如果不是,則在這種情況下餘數為 XNUMX。 因此,該數字是奇數。 

簡單來說,上面的代碼首先檢查用戶輸入的字符串是否為數字。 如果是,則進行第二次檢查以查看除以二是否還有餘數。 但是直到用戶輸入的值是數字才會執行第二個塊。

即循環會定期執行,直到條件發生。 在這種情況下,它的工作原理是這樣的。 

也就是說,你可以反其道而行之:循環某個動作,直到事件變為假。

代碼解析

現在讓我們更詳細地了解這段代碼是如何工作的。 為此,我們將逐步分析它。

  1. 首先,用戶輸入一個字符串,該字符串被變量 n 接受。 
  2. 使用循環 檢查此變量的類型。 在第一個條目上,它不相等 INT. 因此,作為測試的結果,發現該條件為真。 因此,進入循環體。
  3. 在操作員的幫助下 嘗試 我們正在嘗試將字符串轉換為數字。 如果這樣做,則不會發生錯誤。 因此,不需要對其進行處理。 因此,解釋器返回到循環的開頭,根據檢查的結果,原來它已經變成了一個整數。 所以讓我們進入第 7 步
  4. 如果轉換不成功,則拋出 ValueError。 在這種情況下,程序流被發送到 except 處理程序。
  5. 用戶輸入一個分配給變量 n 的新值。
  6. 解釋器返回到步驟 2 並再次檢查。 如果是整數值,則執行步驟7。如果不是,則按照步驟3再次嘗試轉換。
  7. 在操作員的幫助下 if 判斷一個數除以 2 後是否有餘數。 
  8. 如果不是,則返回文本“偶數”。
  9. 如果不是,則返回文本“odd”。

現在考慮這樣一個例子。 試著確定這個循環會經歷多少次?

總計 = 100 

I = 0

當我 < 5:

    n = int(輸入())

    總計 = 總計 - n

    我=我+ 1 

打印(“剩餘”,總計)

正確答案是 5。最初,變量的值 i - 零。 解釋器檢查變量是否相等 i 4個或更少。 如果是,則返回該值。 ,並相應地執行循環。 該值增加一。

在第一次迭代之後,變量的值變為 1。執行檢查,程序知道這個數字又小於 5。因此,第二次執行循環體。 由於步驟相似,因此值也增加了 2,變量現在等於 XNUMX。

這個值也小於五。 然後循環第三次執行,添加到變量中 i 1,它被賦值為 3。這又小於 XNUMX。 所以它來到了循環的第六次迭代,變量的值 i 等於 5(畢竟,據我們所知,它最初是零)。 因此,該條件未通過測試,循環自動終止,並執行到其外部的下一步(或程序終止,如果未提供以下步驟)的轉換。

循環也可能發生在相反的方向。 這是一個代碼示例,其中每次後續迭代都會從變量的當前值中減去一個。 

總計 = 100 

而總> 0:

    n = int(輸入())

    總計 = 總計 - n 

print(“資源耗盡”)

試著猜猜這個程序做了什麼! 想像一下,在一個變量中 存儲有關程序資​​源的信息。 每次解釋器檢查資源是否存在。 如果沒有,則顯示“資源耗盡”文本並關閉程序。 並且隨著循環的每次迭代,資源會減少用戶指定的數量。

現在做作業。 嘗試更改上面的代碼,使變量在物理上不會變為負數。 

3 個評論

  1. si代碼ahaan usoo gudbi

發表評論