1. 程式人生 > >【python】迴圈語句

【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萬",並且退出迴圈;
在這裡插入圖片描述
執行如下:
在這裡插入圖片描述