一、循環語句介紹
- 一般情況下,需要多次重復執行的代碼,都可以用循環的方式來完成
- 循環不是必須要使用的,但是為了提高代碼的重復使用率,所以有經驗的開發者都會采用循環
二、常見的循環形式
- while循環
- for循環
三、while循環
while 條件: 滿足條件時執行的代碼1 滿足條件時執行的代碼2 ...(省略)...
舉例如下:
i = 0 while i<5:
print("i現在等於%d"%i) i+=1
運行結果為:
i現在等於0
i現在等於1
i現在等於2
i現在等於3
i現在等於4
while循環的嵌套
類似if的嵌套,while嵌套就是:while里面還有while
while 條件1: 滿足1時,執行的代碼1 滿足1時,執行的代碼2 ...(省略)... while 條件2: 滿足2時,執行的代碼1 滿足2時,執行的代碼2
這也就是所謂的雙重循環,典型的案例:打印九九乘法表
i=1
while i<=9: j=1
while i>=j: print("%d*%d=%-2d"%(i,j,i*j),end=" ") j+=1
print("\n") i+=1
運行結果如下:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
解釋說明
- %-2d意思是占2個位置的整形
- 因為python中的print默認end是”\n”,所以默認時換行的,這里我們只需要修改end屬性就可以了設置結尾不換行了
四、for循環
在Python中 for循環可以遍歷任何序列的項目,如一個列表或者一個字符串等。
for循環的格式
for 臨時變量 in 集合容器: 滿足循環執行的代碼 else: 不滿足循環時執行的代碼
其中:else可寫可不寫,根據需要自行決定
name = "Se7eN_HOU"
for x in name: print(x)
運行結果為:’S’,’e’,’7′,’e’,’N’,’_’,’H’,’O’,’U’
for循環嵌套
for循環和while循環一樣也可以嵌套,還以打印九九乘法表為例演示
for i in range(1,10): for j in range(1,10): print("%d*%d=%-2d"%(i,j,i*j),end=" ") if i==j: break
print("\n")
運行效果為:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
說明:
- 用到break這個知識點,講座下一個知識點馬上給大家講解
- range()一個隨機函數、在()里面寫上隨機數的范圍
五、continue和break
使用場景,通常在循環中當做中斷循環使用,例如我本來想做10次循環,但是到第5次的時候我就不想循環了,或者第5次不想循環了,后面4次繼續循環就需要用到break和continue。
continue:跳出當前本次循環,后面的循環繼續做
i = 1
while i<=10: if i==5: i+=1
continue
print(i) i+=1
運行結果為:1,2,3,4,6,7,8,9,10
當i等於5的時候進入if語句,只做了自加1,continue之后的就print沒有執行,但是i等於6,7,8,9,10次的循環繼續執行了,所以continue只是結束當前這一次循環,后面的循環繼續執行
break:結束當前所有的循環,不管后面還有幾次都不執行了
i = 1
while i<=10: if i==5: i+=1
break
print(i) i+=1
運行結果為:1,2,3,4
當i等於5的時候,進入if語句,執行了i+=1,之后執行break代碼,直接退出循環,所以后面的,6,7,8,9,10次都不會執行了