提示:上一篇文章中詳細的說明了
while
迴圈語句,本篇文章來說說Python中的for
迴圈語句。
1、for
迴圈語法
# 注:臨時變數是程式設計師自定義的臨時變數。
for 臨時變數 in 序列:
重複執行的程式碼1
重複執行的程式碼2
......
for
迴圈的程式碼塊會執行多次,序列中有幾個元素就會執行幾次,
每執行一次就會將序列中的一個元素賦值給臨時變數,
所以我們可以通過臨時變數,來獲取列表中的每個元素。
快速體驗:
"""
1. 準備一個資料序列
2. 進行for迴圈
"""
str1 = 'Hello Pyhton'
for i in str1:
print(i)
執行結果:
2、for
迴圈中的break
和continue
for
迴圈中的break
和continue
和while
迴圈中的用法一樣。
下面我們直接練習來說明。
(1)break
說明
str1 = 'Hello Pyhton'
for i in str1:
if i == ' ': # 空格
print('遇到空格不列印')
break
print(i)
執行結果:
(2)continue
說明
str1 = 'Hello Pyhton'
for i in str1:
if i == ' ': # 空格
print('遇到空格不列印')
continue
print(i)
執行結果:
3、迴圈+else結構
迴圈(while
迴圈和for
迴圈)可以和else
配合使用,else
下方縮排的程式碼指的是,當迴圈正常結束之後要執行的程式碼。
(1)while...else
1)描述:
需求:女朋友生氣了,要懲罰:連續說5遍“媳婦兒,我錯了”,如果道歉正常完畢女朋友就原諒我了,這個程式怎麼寫?
i = 1
while i <= 5:
print('媳婦兒,我錯了')
i += 1
print('媳婦兒原諒我了...')
思考: 這個
是的,能夠執行。
但是這裡想說的是,只有懲罰的迴圈正常結束了,才能說出原諒你了。如果你的懲罰沒有正常結束,是不能夠被原諒的。
所以像這種懲罰後被原諒,這兩部分是有一種依賴關係的,這個時候就不能像上邊這樣寫了,就需要使用
while...else
格式的迴圈語句來完成編碼。
2)語法:
while 條件表示式:
條件成立重複執行的程式碼
else:
迴圈正常結束之後要執行的程式碼
3)示例:
"""
1. 書寫道歉的迴圈。
2. 迴圈正常結束要執行的程式碼寫在else中。
"""
i = 1
while i <= 5:
print('媳婦兒,我錯了')
i += 1
else:
print('媳婦原諒我了,真開心,哈哈哈哈')
"""
輸出結果:
媳婦兒,我錯了
媳婦兒,我錯了
媳婦兒,我錯了
媳婦兒,我錯了
媳婦兒,我錯了
媳婦原諒我了,真開心,哈哈哈哈
"""
(2)while...else
退出迴圈的方式
需求:女朋友生氣,要求道歉5遍:媳婦兒,我錯了。道歉到第三遍的時候,媳婦埋怨這一遍說的不真誠,是不是就是要退出迴圈了?這個退出有兩種可能性:
- 更生氣,不打算原諒,也不需要道歉了,程式如何書寫?
- 只一遍不真誠,可以忍受,繼續下一遍道歉,程式如何書寫?
1)break
方式
i = 1
while i <= 5:
if i == 3:
print('這遍說的不真誠,別說了!')
break
print('媳婦兒,我錯了')
i += 1
else:
print('媳婦原諒我了,真開心,哈哈哈哈')
執行結果:
總結:所謂
else
指的是迴圈正常結束之後要執行的程式碼,即如果是break
終止迴圈的情況(代表非正常情況),else
下方縮排的程式碼將不執行。
2)continue
方式
i = 1
while i <= 5:
if i == 3:
print('這遍說的不真誠,給我注意點!')
i += 1
continue
print('媳婦兒,我錯了,')
i += 1
else:
print('媳婦原諒我了,真開心,哈哈哈哈')
執行結果:
總結:因為
continue
是退出當前一次迴圈,繼續下一次迴圈,所以該迴圈在continue
控制下是可以正常結束的,當迴圈結束後,則執行了else
縮排的程式碼。
(3)for...else
和while...else
的用法一樣的。
1) 語法:
for 臨時變數 in 序列:
重複執行的程式碼
...
else:
迴圈正常結束之後要執行的程式碼
所謂
else
指的是迴圈正常結束之後要執行的程式碼,即如果是break
終止迴圈的情況,else
下方縮排的程式碼將不執行。
2)示例:
str1 = 'Python'
for i in str1:
print(i)
else:
print('迴圈正常結束之後執行的程式碼')
(4)for...else
退出迴圈的方式
1)break
終止迴圈
str1 = 'Python'
for i in str1:
if i == 'h':
print('遇到h不列印')
break
print(i)
else:
print('迴圈正常結束之後執行的程式碼')
執行結果:
沒有執行
else
縮排的程式碼。
2)continue
終止迴圈
str1 = 'Python'
for i in str1:
if i == 'h':
print('遇到h不列印')
continue
print(i)
else:
print('迴圈正常結束之後執行的程式碼')
執行結果:
因為
continue
是退出當前一次迴圈,繼續下一次迴圈,所以該迴圈在continue
控制下是可以正常結束的,當迴圈結束後,則執行了else
縮排的程式碼。