『無為則無心』Python基礎 — 15、Python流程控制語句(for循環語句)


提示:上一篇文章中詳細的說明了while循環語句,本篇文章來說說Python中的for循環語句。

1、for循環語法

# 注:臨時變量是程序員自定義的臨時變量。
for 臨時變量 in 序列:
    重復執行的代碼1
    重復執行的代碼2
    ......

for循環的代碼塊會執行多次,序列中有幾個元素就會執行幾次,

每執行一次就會將序列中的一個元素賦值給臨時變量,

所以我們可以通過臨時變量,來獲取列表中的每個元素。

快速體驗

"""
1. 准備一個數據序列
2. 進行for循環
"""
str1 = 'Hello Pyhton'
for i in str1:
    print(i)

執行結果:

image

2、for循環中的breakcontinue

for循環中的breakcontinuewhile循環中的用法一樣。

下面我們直接練習來說明。

(1)break說明

str1 = 'Hello Pyhton'
for i in str1:
    if i == ' ': # 空格
        print('遇到空格不打印')
        break
    print(i)

執行結果:

image

(2)continue說明

str1 = 'Hello Pyhton'
for i in str1:
    if i == ' ': # 空格
        print('遇到空格不打印')
        continue
    print(i)

執行結果:

image

3、循環+else結構

循環(while循環和for循環)可以和else配合使用,else下方縮進的代碼指的是,當循環正常結束之后要執行的代碼。

(1)while...else

1)描述:

需求:女朋友生氣了,要懲罰:連續說5遍“媳婦兒,我錯了”,如果道歉正常完畢女朋友就原諒我了,這個程序怎么寫?

i = 1
while i <= 5:
    print('媳婦兒,我錯了')
    i += 1
print('媳婦兒原諒我了...')

思考: 這個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('媳婦原諒我了,真開心,哈哈哈哈')

執行結果:

image

總結:所謂else指的是循環正常結束之后要執行的代碼,即如果是break終止循環的情況(代表非正常情況),else下方縮進的代碼將不執行。

2)continue方式

i = 1
while i <= 5:
    if i == 3:
        print('這遍說的不真誠,給我注意點!')
        i += 1
        continue
    print('媳婦兒,我錯了,')
    i += 1
else:
    print('媳婦原諒我了,真開心,哈哈哈哈')

執行結果:

image

總結:因為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('循環正常結束之后執行的代碼')

執行結果:

image

沒有執行else縮進的代碼。

2)continue終止循環

str1 = 'Python'
for i in str1:
    if i == 'h':
        print('遇到h不打印')
        continue
    print(i)
else:
    print('循環正常結束之后執行的代碼')

執行結果:

image

因為continue是退出當前一次循環,繼續下一次循環,所以該循環在continue控制下是可以正常結束的,當循環結束后,則執行了else縮進的代碼。


免責聲明!

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



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