1、while循環語句
迭代(iteration)意味著反復執行相同的代碼塊。實現迭代的編程結構稱為循環(loop)。
假設有一項任務,要在屏幕上輸出從1到100的數字。僅僅使用之前討論過的知識,可能會寫出如下代碼:
- print(1)
- print(2)
- print(3)
- # 此處省略print(4) ~ print(99)
- print(100)
這樣做非常麻煩,也不聰明。學會編程的好處之一就是可以方便地處理重復工作。Python中的循環可以分為while循環和for循環兩種。
與if語句類似,while語句同樣首先判斷布爾表達式,如果為真,那么繼續執行循環體;如果為假,那么跳出循環體。while循環的語法格式如下:
while 表達式:
循環體
使用while循環來完成從1到100的輸出任務:
- >>> n = 1 # 因為從1開始打印,所以先將n賦值為1
- >>> while n <= 100: # 每次都判斷n的值是否小于等于100
- ... print(n) # 打印n的值
- ... n = n + 1 # 每次將n的值增加1,以便打印2、3、4……
- ...
- 1
- 2
- 3
- 4
- ……
- 98
- 99
- 100
while循環總是不斷地判斷條件是否滿足,直到條件不滿足才跳出循環。利用這個特性,可以編寫一個“猜數字”的游戲。先由一個人輸入一個數字(自然數),這個數作為謎底。再由另外一個人猜,如果猜的數字比謎底大,那么打印“猜大了”; 如果猜的數字比謎底小,那么打印“猜小了”;直到猜的數字與謎底相等為止,打印“恭喜,猜對了!”。代碼示例如下:
- answer = int(input('請輸入謎底數字:'))
- number = int(input('請輸入您要猜的數字:'))
- while number != answer: # 如果number不等于answer,即猜錯了,那么進入循環
- if number > answer: # 如果猜的數字大于謎底
- print('猜大了!')
- else: # 如果猜的數字小于謎底
- print('猜小了!')
- number = int(input('請繼續輸入您要猜的數字:'))
- print('恭喜,猜對了!') # 如果跳出循環,那么說明猜對了
建議將這個程序使用腳本模式運行,輸入數據,測試運行結果:
- 請輸入謎底數字:77
- 請輸入您要猜的數字:20
- 猜小了!
- 請繼續輸入您要猜的數字:90
- 猜大了!
- 請繼續輸入您要猜的數字:80
- 猜大了!
- 請繼續輸入您要猜的數字:77
- 恭喜,猜對了!
2、小心死循環
死循環是指程序在流程控制中一直重復運行某一段代碼,無法依靠自身的控制終止循環。初學者很容易不小心寫出死循環。例如,在前文使用while循環完成從1到100的輸出任務中,如果將最后一行代碼“n = n + 1”刪掉,那么該循環就變成了死循環。這是因為n的值不會增加,從而會一直滿足“n <= 100”的條件無法跳出循環。試著運行如下代碼:
- >>> n = 1
- >>> while n < 100:
- ... print(n)
- ...
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- ……
當敲下最后一個回車鍵時,程序會在屏幕上不停地打印1,直到強制關閉程序窗口,或者按Ctrl+C鍵終止程序。死循環可能會使電腦崩潰或者造成其他與預期不符的后果,因此,在使用while循環時要格外小心,看看是否有能夠滿足條件跳出循環的“出口”。
需要指出的是,有些應用場景下需要使用死循環(例如,操作系統最外層是死循環,保證電腦一直運行),也就是說寫出死循環不一定是錯的,但應該僅當清楚自己在做什么時,才寫死循環。
>>本文地址:http://www.jecan.cn/zhuanye/2020/48635.html
聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?