【Python入门教程】第57篇 循环进阶之模拟do…while语句
生活随笔
收集整理的這篇文章主要介紹了
【Python入门教程】第57篇 循环进阶之模拟do…while语句
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本篇我們學習如何在 Python 中模擬 do…while 循環語句。
do…while 循環語句
許多編程語言,例如 JavaScript、Java、 C# 等,都提供了 do…while 循環語句。這種循環語句和 while 循環的不同之處在于它至少會迭代一次。因為它在每次迭代結束時檢查循環條件,當循環條件為 True 時繼續執行迭代。
以下是 Python 中實現 do…while 循環的偽代碼:
do# code block while conditionPython 目前還不支持這種 do…while 循環語法。不過,我們可以使用 while 循環加上 break 語句模擬這種語句。
首先,我們可以為 while 循環指定一個總是成立的條件 Ture,例如:
while True:# code block這種方法可以用于實現代碼塊的第一次執行。實際上這是一個無限循環,我們需要定義退出循環的條件:
while True:# code block# break out of the loopif condition:break以上語法中,代碼塊至少會被執行一次,每次迭代之后會檢查 condition。
do…while 循環模擬示例
假如我們需要開發一個猜數字的游戲,邏輯如下:
- 首先,生成一個 0 到 10 之間的隨機數字。
- 然后,重復提示用戶輸入一個數字。如果輸入的數字小于或者大于生成的隨機數,顯示相應的提示。如果輸入的數字等于隨機數,結束循環。
以下代碼使用 while 循環實現猜數字游戲:
from random import randint# determine the range MIN = 0 MAX = 10# generate a secret number secret_number = randint(MIN, MAX)# initialize the attempt attempt = 0# The first attempt input_number = int(input(f'Enter a number between {MIN} and {MAX}:')) attempt += 1if input_number > secret_number:print('It should be smaller.') elif input_number < secret_number:print('It should be bigger.') else:print(f'Bingo! {attempt} attempt(s)')# From the second attempt while input_number != secret_number:input_number = int(input(f'Enter a number between {MIN} and {MAX}:'))attempt += 1if input_number > secret_number:print('It should be smaller.')elif input_number < secret_number:print('It should be bigger.')else:print(f'Bingo! {attempt} attempt(s)')運行程序并輸入一些數字:
Enter a number between 0 and 10:5 It should be bigger. Enter a number between 0 and 10:7 It should be bigger. Enter a number between 0 and 10:8 Bingo! 3 attempt(s)由于 while 循環在迭代開始就執行了條件檢查,所以需要重復編寫兩次提示用戶輸入和數字比較的代碼,循環之前寫一次,循環內部寫一次。
為了避免這種重復的代碼,我們可以使用模擬的 do while 循環實現以上功能:
from random import randint# determine the range MIN = 0 MAX = 10# generate a secret number secret_number = randint(MIN, MAX)# initialize the attempt attempt = 0while True:attempt += 1input_number = int(input(f'Enter a number between {MIN} and {MAX}:'))if input_number > secret_number:print('It should be smaller.')elif input_number < secret_number:print('It should be bigger.')else:print(f'Bingo! {attempt} attempt(s)')break以上代碼修改的內容如下:
- 首先,刪除了 while 循環之前的代碼。
- 其次,增加了停止循環 break 語句,當輸入的數字等于隨機數時停止循環。
總結
- Python 不支持 do…while 循環語句。
- Python 可以使用 while 循環加上 break 語句模擬 do…while 循環。
總結
以上是生活随笔為你收集整理的【Python入门教程】第57篇 循环进阶之模拟do…while语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hive 正则表达式-regexp
- 下一篇: 考古中怎么判断化石的年代?碳14的半衰期