Python while循環語句詳解


Python 中,while 循環和 if 條件分支語句類似,即在條件(表達式)為真的情況下,會執行相應的代碼塊。不同之處在於,只要條件為真,while 就會一直重復執行那段代碼塊。

while 語句的語法格式如下:

while 條件表達式:
    代碼塊

這里的代碼塊,指的是縮進格式相同的多行代碼,不過在循環結構中,它又稱為循環體。

while 語句執行的具體流程為:首先判斷條件表達式的值,其值為真(True)時,則執行代碼塊中的語句,當執行完畢后,再回過頭來重新判斷條件表達式的值是否為真,若仍為真,則繼續重新執行代碼塊...如此循環,直到條件表達式的值為假(False),才終止循環。

while 循環結構的執行流程如圖所示。

 

例如,打印 1~100 的所有數字,就可以使用 while 循環,實現代碼如下:

復制代碼
# 循環的初始化條件
num = 1
# 當 num 小於100時,會一直執行循環體
while num < 100 :
    print("num=", num)
    # 迭代語句
    num += 1
print("循環結束!")
復制代碼

運行程序會發現,程序只輸出了 1~99,卻沒有輸出 100。這是因為,當循環至 num 的值為 100 時,此時條件表達式為假(100<100),當然就不會再去執行代碼塊中的語句,因此不會輸出 100。

注意,在使用 while 循環時,一定要保證循環條件有變成假的時候,否則這個循環將成為一個死循環。所謂死循環,指的是無法結束循環的循環結構,例如將上面 while 循環中的num += 1代碼注釋掉,再運行程序你會發現,Python 解釋器一直在輸出"num= 1",永遠不會結束(因為 num<100 一直為 True),除非我們強制關閉解釋器。

再次強調,只要位於 while 循環體中的代碼,其必須使用相同的縮進格式(通常縮進 4 個空格),否則 Python 解釋器會報 SyntaxError 錯誤(語法錯誤)。例如,將上面程序中num+=1語句前移一個空格,再次執行該程序,此時 Python 解釋器就會報 SyntaxError 錯誤。

除此之外,while 循環還常用來遍歷列表、元組和字符串,因為它們都支持通過下標索引獲取指定位置的元素。例如,下面程序演示了如何使用 while 循環遍歷一個字符串變量:

my_char="hello world"
i = 0;
while i<len(my_char):
    print(my_char[i],end="")
    i = i + 1

程序執行結果為:

hello world


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM