python中的 循環(huán)語(yǔ)句有兩種 for...in循環(huán) 和 while循環(huán)。循環(huán)控制語(yǔ)句,和其他的語(yǔ)言類似,也有break和continue。與其他語(yǔ)言不同的地方是for...in循環(huán)和while循環(huán),后面可以有else語(yǔ)句,具體下面會(huì)依次介紹~
創(chuàng)新互聯(lián)于2013年開(kāi)始,先為藤縣等服務(wù)建站,藤縣等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為藤縣企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
循環(huán)語(yǔ)句的控制結(jié)構(gòu)圖如下:
for in 循環(huán)的語(yǔ)法如下:
for <variable> in <sequence>:
<statements>
其中<sequence>可以是一個(gè)字符串或者也可以是一個(gè)列表 等...
for i in 'hello': # 遍歷字符串
print(i)
輸出結(jié)果:
h
e
l
l
o
######
for i in ['a', 'b', 'c', 'd']: # 遍歷列表
print(i)
輸出結(jié)果:
a
b
c
d
######
d = {'a': 1, 'b': 2, 'c': 3}
for k, v in d.items(): # 遍歷字典,可同時(shí)迭代key和value
print(k, v)
輸出結(jié)果:
a 1
b 2
c 3
這些可以直接被迭代的對(duì)象 統(tǒng)稱為可迭代對(duì)象:Iterable(collections模塊的Iterable類型),只要是Iterable對(duì)象就可以作用于for循環(huán)??梢允褂?isinstance() 判斷一個(gè)對(duì)象是否是 Iterable 對(duì)象,示例如下:
lst = (1, 2, 3) # 元組類型
flag = isinstance(lst, Iterable)
print(flag)
輸出結(jié)果:
True # 元組為可迭代對(duì)象
如下兩種數(shù)據(jù)類型可以總用于for循環(huán)中:
1)集合數(shù)據(jù)類型,如:list、tuple、dict、set、str...
2)生成器(generator)和帶yield的generator function
range()函數(shù)為python內(nèi)置函數(shù),能夠生成數(shù)列。
hello_range = range(3)
print(isinstance(hello_range, Iterable))
for i in hello_range: # 循環(huán)遍歷 數(shù)列
print(i)
輸出結(jié)果:
True # range(3) 所生成的對(duì)象為 可迭代對(duì)象
0
1
2
使用range指定數(shù)列的區(qū)間:
>>> for i in range(2,5):
... print(i)
...
2
3
4
除了指定區(qū)間,還可以指定步長(zhǎng):
>>> for i in range(2, 10, 3):
... print(i)
...
2
5
8
range()函數(shù)除了可以作用于for循環(huán)中,還可以用于創(chuàng)建list或者tuple:
hello_list = list(range(10)) # 生成 list
print(hello_list)
hello_tuple = tuple(range(10)) # 生成 tuple
print(hello_tuple)
for...in 后面還可以有 else 語(yǔ)句,語(yǔ)法如下:
for <variable> in <sequence>:
<statements>
else:
<statements>
else 中的語(yǔ)句,會(huì)在 for 循環(huán)結(jié)束之后執(zhí)行:
>>> for i in range(5):
... print(i)
... else:
... print('end...')
...
0
1
2
3
4
end...
Tip:若 for 循環(huán)被 break 終止,則 else 中的語(yǔ)句不會(huì)被執(zhí)行,下面會(huì)介紹~
python中while循環(huán)的語(yǔ)法如下:
while <condition>:
<statements>
條件滿足,則一直循環(huán),知道條件不滿足,退出循環(huán)~
示例如下,求1 ... 100 的總和:
sum = 0
n = 1
while n <= 100:
sum += n
n += 1
print(sum) # 輸出結(jié)果:5050
類似于 for...in 循環(huán),while 循環(huán)后面也可以有 else 語(yǔ)句,語(yǔ)法如下:
while <condition>:
<statements>
else:
<statements>
當(dāng) while 后面的判斷語(yǔ)句返回值為 false,則循環(huán)終止,然后執(zhí)行 else 中的語(yǔ)句。同 for...in 循環(huán)一樣,若循環(huán)被 break 終止,則不會(huì)執(zhí)行 else 中的語(yǔ)句。
sum = 0
n = 1
while n <= 100:
sum += n
n += 1
else:
print('end...loop')
print(sum)
輸出結(jié)果:
end...loop
5050
可以使 while 后面的判斷語(yǔ)句一直返回為 True,這樣循環(huán)將不會(huì)被終止,一直執(zhí)行循環(huán)體中的語(yǔ)句:
while True:
username = input('請(qǐng)輸入用戶名:')
print('welcome %s' % username)
輸出結(jié)果:
請(qǐng)輸入用戶名:Obama
welcome Obama
請(qǐng)輸入用戶名:Trump
welcome Trump
請(qǐng)輸入用戶名:
......
......
例如 Linux 終端用戶的登錄,若用戶輸入的用戶名和密碼不正確,則會(huì)一直要求用戶重新輸入,直到輸入正確為止~
簡(jiǎn)單模擬下:
username = 'baby'
passwd = '123456'
flag = True
while flag:
login_username = input('請(qǐng)輸入用戶名:')
login_passwd = input('請(qǐng)輸入密碼:')
if login_username == username and login_passwd == passwd:
flag = False
else:
print('Welcome %s' % username)
輸出結(jié)果:
請(qǐng)輸入用戶名:Obama
請(qǐng)輸入密碼:abc
請(qǐng)輸入用戶名:Trump
請(qǐng)輸入密碼:123
請(qǐng)輸入用戶名:baby
請(qǐng)輸入密碼:123456
Welcome baby
在循環(huán)語(yǔ)句中還可以使用 break ,contiune 來(lái)控制循環(huán)流程。
continue 用于略過(guò)本次循環(huán)中剩下的語(yǔ)句,直接進(jìn)入下一次循環(huán),示例如下:
# 計(jì)算1...100的奇數(shù)和
sum =0
count = 0
while count < 100:
count += 1
if count % 2 != 1: # 若不是奇數(shù),直接進(jìn)入下一次循環(huán)
continue
sum += count
print('sum=%s' % sum)
輸出結(jié)果:
sum=2500
break 用于跳出最近的一個(gè)循環(huán),示例如下:
sum =0
count = 1
while count <= 100:
if count == 51:
break
sum += count
count += 1
print('sum=%s' % sum)
輸出結(jié)果:
sum=1275
當(dāng)count為51時(shí),終止循環(huán),則sum計(jì)算的是 1...50 的總和
Tip:break跳出循環(huán),僅跳出最近的一個(gè)循環(huán),若循環(huán)只有一層,執(zhí)行break之后,循環(huán)就結(jié)束了;若循環(huán)有2層,則外側(cè)的循環(huán)還會(huì)繼續(xù)
lst_1 = ['a......', 'b......', 'c......']
lst_2 = [1, 2, 3]
for i in lst_1:
print(i)
for j in lst_2:
print(j)
輸出結(jié)果:
a......
1
2
3
b......
1
2
3
c......
1
2
3
如上所示,這里有兩層循環(huán),現(xiàn)在,當(dāng)內(nèi)側(cè)循環(huán)至2時(shí),使用break終止循環(huán)(見(jiàn)下面的示例),可以看到,內(nèi)側(cè)循環(huán)在輸出lst_2中的2之后終止,但是外側(cè)的循環(huán)還在繼續(xù):
lst_1 = ['a...', 'b...', 'c...']
lst_2 = [1, 2, 3]
for i in lst_1:
print(i)
for j in lst_2:
print(j)
if j == 2:
break
輸出結(jié)果:
a...
1
2
b...
1
2
c...
1
2
break還有一個(gè)注意點(diǎn),就是當(dāng)循環(huán)被break終止時(shí),不會(huì)執(zhí)行循環(huán)后面的 else 語(yǔ)句
lst_1 = ['a...', 'b...', 'c...']
for i in lst_1:
print(i)
else:
print('end...')
輸出結(jié)果:
a...
b...
c...
end... # 正常執(zhí)行else中的內(nèi)容
lst_1 = ['a...', 'b...', 'c...']
for i in lst_1:
print(i)
if lst_1.index(i) == 1: # 當(dāng)循環(huán)值lst_1下標(biāo)為1的元素時(shí),終止循環(huán)
break
else:
print('end...')
輸出結(jié)果: # 沒(méi)有 c... 和 end... 輸出
a...
b...
while 循環(huán)也一樣,這里就直接使用上面的例子:
sum = 0
count = 1
while count <= 100:
if count == 51:
break
sum += count
count += 1
else:
print('end loop...')
print('sum=%s' % sum)
輸出結(jié)果:
sum=1275 # else 中的 end loop... 并沒(méi)有輸出
.................^_^
文章題目:python循環(huán)語(yǔ)句
鏈接URL:http://bm7419.com/article34/geispe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站制作、App設(shè)計(jì)、ChatGPT、網(wǎng)站改版、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)