循環(huán):把一件事情重復(fù)執(zhí)行多遍
For循環(huán):
for…in…循環(huán)語句
語法:
- 有個(gè)空房間叫做變量;
- 有一群等著辦業(yè)務(wù)的人:列表/字典/字符串/其他數(shù)據(jù)集合,最后帶冒號
- 執(zhí)行業(yè)務(wù)流程:不斷循環(huán)的部分:不要忘記了縮進(jìn)!!!
- 執(zhí)行循環(huán)的過程,也叫作【遍歷】
若為列表:
for i in [1,2,3,4,5]:
print(i)
結(jié)果如下所示:將列表里的值打印出來
1
2
3
4
5
若為字典:
dict = {'日本':'東京','英國':'倫敦','法國':'巴黎'}
for i in dict:
print(i)
結(jié)果如下所示:就是將鍵打印出來
日本
英國
法國
若為字符串:
for i in '吳承恩':
print(i)
結(jié)果如下所示:可以一個(gè)一個(gè)地打印出來,說明字符串也是一個(gè)一個(gè)進(jìn)去的
吳
承
恩
若為其他數(shù)據(jù)集合:range()
for I in range(3):
Print(i)
結(jié)果為:取從0~x-1的整數(shù)序列
0
1
2
For I in range(2,4)
Print(i)
結(jié)果為:取頭不取尾
2
3
For I in range(3)
Print('我很棒')
結(jié)果為:
我很棒
我很棒
我很棒
for i in range(0,10,3):
print(i)
結(jié)果為:從0數(shù)到9(取頭不取尾),步長為3。
0
3
6
9
執(zhí)行循環(huán):
d = {'小明':'醋','小紅':'油','小白':'鹽','小張':'米'}
for i in d:
print(i+'買'+d[i])
結(jié)果為:#i能取到字典的鍵,然后d[i]能取到鍵對應(yīng)的值
小明買醋
小紅買油
小白買鹽
小張買米
循環(huán)語句:while
和for循環(huán)語句不同,while語句沒有“空房間”,也不是“把一群排隊(duì)辦業(yè)務(wù)的人做完”。它是“在一定的條件下”,“按照流程辦事”。
語法:
- 需要先對變量進(jìn)行賦值
- 放行條件:條件后也是跟著冒號
- 辦事流程:while的子句,需要注意縮進(jìn)
而while的寫法如下:
while a < 5: #設(shè)定一個(gè)放行條件:a要小于5,才能辦事
a = a + 1 # 滿足條件時(shí),就辦事:將a+1
print(a) # 繼續(xù)辦事:將a+1的結(jié)果打印出來
【放行條件】
例子:
password = '' # 變量password用來保存輸入的密碼
while password !='816': #這里的!=代表的是不等于的意思,不等于正確密碼的時(shí)候,就會(huì)一直循環(huán)
password = input('請嘗試輸入密碼:') #與計(jì)算機(jī)交互了,讓用戶輸入密碼的值復(fù)制給密碼,然后不斷循環(huán)
print('歡迎回家') #這里沒有縮進(jìn),所以這個(gè)是跳出循環(huán)后,才打印的值。
【辦事流程】
之前,我們用for循環(huán)解過“1到100分別乘以5”的題目:
for i in range(1,101):
print(i*5)
而while的寫法如下:
i=1
while i<101:
print(i*5)
i=i+1
【For循環(huán) VS While循環(huán)】
區(qū)別:循環(huán)的工作量是否確定:for循環(huán)就像空房間依次辦理業(yè)務(wù),直到把【所有工作做完】才下班。但while循環(huán)就像哨卡放行,【滿足條件就一直工作】,直到不滿足條件就關(guān)閉哨卡。
可理解為:若循環(huán)工作量是確定的,則用for循環(huán)(可見for循環(huán)具體案例),若循環(huán)的工作量不確定的是,就用while循環(huán)(可見輸入密碼案例)
共同點(diǎn):把一件事情做N遍,則兩者均可
例子:(以下的效果一致,但是for循環(huán)明顯更簡潔些)
#用for循環(huán)把詩句打印3遍
for i in range(1,4) :
print('明日復(fù)明日,明日何其多。')
#用while循環(huán)把詩句打印3遍
j = 1
while j<4 :
print ('明日何其多,明日何其多。')
j =j+1
總結(jié)如下: