首頁>技術>

流程控制中除了分支結構的IF語句外,還有迴圈語句。讓我們一起來看看迴圈語句吧

本節內容結構圖如下:

1、迴圈作用

使用迴圈語句可以讓程式碼更加高效地重複執行。

2、分類

Python中迴圈語句有while迴圈及for迴圈2種:

while迴圈for迴圈

3、while迴圈

語法格式

while 條件:

條件成立時重複執行的語句塊

場景1:陳少是一個在職員工,週一到週五都要正常上班。如何重複輸出“今天是星期x,要上班”的資訊呢?

程式碼示例1:

# 定義記數器變數ii = 1while i <= 5:    print(f'今天是星期{i},要上班')    # 修改記數器變數    i += 1

執行結果1

今天是星期1,要上班今天是星期2,要上班今天是星期3,要上班今天是星期4,要上班今天是星期5,要上班

4、迴圈的退出

Python中可以使用break和continue實現迴圈的退出。

break:終止整個迴圈

continue:退出本次迴圈,繼續下一次迴圈

注意:使用continue時,要記得在continue前修改記數器,否則會進入死迴圈

場景2:場景1中,如果陳少週四、週五請假了(即不用輸出“今天是星期4,要上班”及“今天是星期5,要上班”),就可使用break來實現。

程式碼示例2:

# 定義記數器變數ii = 1while i <= 5:    if i == 4:        break    print(f'今天是星期{i},要上班')    # 修改記數器變數    i += 1

執行結果2

今天是星期1,要上班今天是星期2,要上班今天是星期3,要上班

場景3:場景1中,如果陳少只是週四請假,週五正常上班(即不用輸出“今天是星期4,要上班”,但“今天是星期5,要上班”要輸出),就可使用continue來實現。

程式碼示例3

# 定義記數器變數ii = 1while i <= 5:    if i == 4:        i += 1        continue    print(f'今天是星期{i},要上班')    # 修改記數器變數    i += 1

執行結果3

今天是星期1,要上班今天是星期2,要上班今天是星期3,要上班今天是星期5,要上班

注:如果週四請假資訊要輸出可以在if i == 4:後加print("今天是星期4,請假了沒上班")

5、while迴圈巢狀

語法格式

while 條件:

條件成立時重複執行的語句塊

while 條件:

條件成立時重複執行的語句塊

場景4:列印臺歷,效果圖如下

程式碼示例4:

# 列印臺歷month = 1while month <= 12:    print(f'{month}月份')    print('星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天', sep='\t')    # 列印31天的月份    if (month < 8 and month % 2 > 0) or (month >= 8 and month % 2 == 0):        day = 1        col = 1        while day <= 31:            # 一週7天,只打印7列資料            if col <= 7:                print(day, end='\t\t')                col += 1            # 一週7天,超出7列則換行列印            else:                print()                print(day, end='\t\t')                # 修改列數記數器,此處修改為2,為第1列資料已列印                col = 2            day += 1    # 列印30天的月份    elif (month == 4 or month == 6 or month == 9 or month == 11):        day = 1        col = 1        while day <= 30:            # 一週7天,只打印7列資料            if col <= 7:                print(day, end='\t\t')                col += 1            # 一週7天,超出7列則換行列印            else:                print()                print(day, end='\t\t')                # 修改列數記數器,此處修改為2,為第1列資料已列印                col = 2            day += 1    # 列印2月份(此處以28天為例)    else:        day = 1        col = 1        while day <= 28:            # 一週7天,只打印7列資料            if col <= 7:                print(day, end='\t\t')                col += 1            # 一週7天,超出7列則換行列印            else:                print()                print(day, end='\t\t')                # 修改列數記數器,此處修改為2,為第1列資料已列印                col = 2            day += 1    print()    month += 1

執行結果4:

2月份星期一	星期二	星期三	星期四	星期五	星期六	星期天1		2		3		4		5		6		7		8		9		10		11		12		13		14		15		16		17		18		19		20		21		22		23		24		25		26		27		28		3月份星期一	星期二	星期三	星期四	星期五	星期六	星期天1		2		3		4		5		6		7		8		9		10		11		12		13		14		15		16		17		18		19		20		21		22		23		24		25		26		27		28		29		30		31		4月份星期一	星期二	星期三	星期四	星期五	星期六	星期天1		2		3		4		5		6		7		8		9		10		11		12		13		14		15		16		17		18		19		20		21		22		23		24		25		26		27		28		29		30

注:執行結果只以2、3、4月份為例,分別展示28天、31天、30天的情況。

6、for迴圈

語法格式

for 臨時變數 in 序列:

重複執行的程式碼塊

示例:用for迴圈列印字串內容

print('使用for迴圈輸出字串內容')str1 = 'python'for v in str1:    print(v)

執行結果

使用for迴圈輸出字串內容python

7、for迴圈巢狀

語法格式

for 臨時變數1 in 序列:

重複執行的程式碼塊

for 臨時變數2 in 序列:

重複執行的程式碼塊

程式碼示例與while迴圈巢狀類似,此處略。

8、else

迴圈語句可以和else結合使用,else下方縮排的程式碼為迴圈正常結束後執行的語句。

while...else...

語法格式

while 條件:

條件成立時重複執行的程式碼塊

else

迴圈正常結束後執行的程式碼塊

for...else...

語法格式

for 臨時變數 in 序列:

重複執行的程式碼塊

else

迴圈正常結束後執行的程式碼塊

while...else...的使用與for...else...類似,這裡使用for...else...為例,程式碼示例如下:

str2 = 'python'for v1 in str2:    print(v1)else:    print('迴圈正常結束之後要執行的程式碼')

執行結果

13
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Redis遇到的那些坑