【python】迴圈語句
1. for迴圈
# for 迴圈的語法格式:
# for 變數 in range(迴圈次數):
# 迴圈需要執行的程式碼
# else:
# 迴圈結束時需要執行的程式碼
#range()函式:
#range(stop): 0~stop-1
#range(start,stop):start~stop-1
#range(start,stop,step):start~stop-1 step(步長)
下面舉幾個例子看一下:
range(10)的範圍是0-9
range(3,10)的範圍是從3開始取到9
拿出1-10之間所有的奇數
拿出1-10之間所有的偶數
補充:
#在python2中: #range(1,5):即刻生成資料,消耗時間並且佔用記憶體 #xrange(1,5):先生成一個xrange物件,使用值的時候才生成資料,才佔用記憶體 #在python3中: #range(1,5):相當於python2中的xrange
下面用for迴圈做幾個小練習:
1.計算1+2+3+…+100=???
2.求1~100之間的所有偶數之和
3.求1~100之間的所有奇數之和
4.使用者輸入一個整形數,求該數的階乘;3!=321
5.實現一個使用者登陸程式,需求如下:
1)輸入使用者名稱和密碼
2)判斷使用者名稱和密碼是否正確(name = ‘potizo’,passwd=‘123’)
3)為了防止暴力破解,登陸僅有三次機會,如果超過三次,程式就報錯
【注】這裡控制剩餘機會是(2-i),而不是(3-i)。原因i是從0開始取值
6.輸入兩個數值,求兩個數的最大公約數和最小公倍數。
提示:最小公倍數=(num1*num2)/最大公約數
最大公約數的範圍是1-min_num(兩個數之間最小的數),這裡我們直接用python自帶的min函式來求最小數即可,同時最大公約數是兩個數能同時整除的最大的數。根據這個條件我們就可以確定for迴圈的控制範圍和if判斷條件。最小公倍數根據已知公式即可求解。min函式如下,直接使用即可。
2. break & continue
#break:跳出整個迴圈,不會再執行迴圈後續的內容
#continue:跳出本次迴圈,continue後面的程式碼不再執行,但是還是會繼續迴圈
#exit():結束程式的執行
for的迴圈本來應該輸入0-9,但是加了if判斷,當i==5時,執行break。break語句的作用是跳出整個大迴圈,即直接跳出for迴圈,不再執行for迴圈裡面break語句後面的內容。
當i == 5時,執行continue。continue語句的作用是跳出本次迴圈但不跳出整個大迴圈,即i ==5時,不再執行for迴圈裡面continue語句後面的內容,但仍需執行for迴圈。
執行到exit()語句時,直接結束整個程式。
break程式碼練習:
模擬我們平常使用的linux命令列互動介面。提示:可以匯入os模組,該模組為python一種系統獨立的方式與底層作業系統互動,而不論具體是什麼作業系統。
匯入os模組後,直接可以呼叫os.system()函式執行相應的命令,具體怎麼實現的我們不需要了解,因為這個函式已經幫我們完成了與底層作業系統互動的工作。if cmd: 表示當cmd不為空時,再進行下一步判斷是為exit還是其他命令;最外層的else:與if cmd:對齊,當cmd的輸入為空時,進入這個判斷,執行continue。
這裡應該使用死迴圈來控制命令的輸入,但是for迴圈一般適用於已知迴圈次數的迴圈,因此當需要死迴圈時,我們可以考慮一下使用while迴圈。
3. while迴圈
while 條件:
條件滿足時,做的事情1
條件滿足時,做的事情2
.....
while迴圈的使用格式如下:
要定義一個整數變數,記錄迴圈次數。
while程式碼練習:
1.用while迴圈實現0-100之間所有偶數累加之和
2.用while控制死迴圈,模擬linux命令列互動介面。
3. 猜數字遊戲,要求如下:
1)系統隨機生成一個1~100的數字;
提示:如何隨機生成整型數, 匯入模組random, 執行random.randint(1,100);
2)使用者總共有5次猜數字的機會;
3)如果使用者猜測的數字大於系統給出的數字,列印“too big”;
4)如果使用者猜測的數字小於系統給出的數字,列印"too small";
5)如果使用者猜測的數字等於系統給出的數字,列印"恭喜中獎100萬",並且退出迴圈;
執行如下: