一般來說,循環次數確定的問題使用for循環或者while循環都可以解決,而循環次數不確定的問題只能使用while循環解決。
for語句的格式:
for 循環變量 in 遍歷對象:
? ? 語句
while語句的格式:
while 條件表達式:
? ? 循環體
for語句是通過循環遍歷某一序列對象(字符串、列表、元組或字典)來構建循環,循環結束的條件就是對象被遍歷完。
而while語句是條件表達式的值為真時,依次執行while語句中的循環體語句,直到條件表達式的值為假時跳出循環,執行下一條語句。
所以它們構建循環的方式就不一樣,一個是遍歷對象,一個是判斷條件真假。而對象有沒有被遍歷完,是可以寫成while語句中的條件表達式的,但是while語句中的條件表達式并不是都可以寫成for語句當中這種遍歷對象的模式。
1、循環次數明確時:
舉例:分別用for語句和while語句編寫一個 Python 程序,每行打印每個name和對應的wage。
names = ['張三','李四','王五','趙六']
wages = [8500,8800,8300,9200]
for i in range(0, len(names)):name = names[i]wage = wages[i]print(name, ':', wage)
"""
運行結果:
張三 : 8500
李四 : 8800
王五 : 8300
趙六 : 9200
"""
這里len()函數計算列表的元素個數。
names = ['張三','李四','王五','趙六']
wages = [8500,8800,8300,9200]
i = 0
while i < len(names):name = names[i]wage = wages[i]print(name, ':', wage)i += 1
"""
運行結果:
張三 : 8500
李四 : 8800
王五 : 8300
趙六 : 9200
"""
2、循環次數不明確時用while語句:
舉例:假設第一個工資是8000元,后面每個月漲500元,每個月花費3000元,攢20萬元需要多少個月?
month = 1
wage = 8000
expense = 3000
balance = wage - expense
while balance<200000:month = month + 1wage = wage + 500balance = balance + wage - expense
print('攢20萬需要:',month,'個月')
在while循環結構中,為了控制循環次數,通常會在程序中設置一個計數變量。每次循環,該變量進行自增或自減操作,當變量值自增到大于設定的上限值或者自減到小于設定的下限值時,循環自動結束。如果不設置一個可以離開循環的條件,有可能會出現死循環。