提示:上一篇文章中詳細的說明了
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縮進的代碼。
