循環(huán)控制
循環(huán)控制,就是讓程序循環(huán)運(yùn)行某一段代碼直到滿足退出的條件,才退出循環(huán)。
Python用關(guān)鍵字for和while來(lái)進(jìn)行循環(huán)控制,但是沒有其它語(yǔ)言的do...while語(yǔ)句(在Java和PHP中都有do while)。
while循環(huán)
while循環(huán)語(yǔ)句的控制結(jié)構(gòu)圖如下所示:
內(nèi)部代碼塊
接下來(lái)看一個(gè)具體的案例,求1-100之間的總和
n = 100
sum = 0
counter = 1
while counter <= n:
sum = sum + counter
counter += 1
print("1 到 %d 之和為: %d" % (n,sum))
-----------------------------------------
通常在循環(huán)條件中,會(huì)設(shè)置退出條件,防止程序死循環(huán)。
while True:
s = input("what's you name:")
print("you name is %s"%s)
print("bye")
這個(gè)程序永遠(yuǎn)也不會(huì)打印bye。
while的else從句:
while循環(huán)還可以增加一個(gè)else從句。當(dāng)while循環(huán)正常執(zhí)行完畢,會(huì)執(zhí)行else語(yǔ)句。注意else與while平級(jí)的縮進(jìn)方式!
i = 0
# i = 11
while i < number:
print(i)
i += 1
else:
print("執(zhí)行完畢!")
如果是被break等機(jī)制強(qiáng)制提前終止的循環(huán),不會(huì)執(zhí)行else語(yǔ)句。
i = 0
while i < number:
print(i)
i += 1
if i == 7:
break
else:
print("執(zhí)行完畢!")
for循環(huán)
雖然與while一樣都是循環(huán)的關(guān)鍵字,但for循環(huán)通常用來(lái)遍歷可迭代的對(duì)象,如一個(gè)列表或者一個(gè)字典。其一般格式如下:
<statements>
for ... in ....:屬于固定套路
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum)
循環(huán)的嵌套
# 這是一個(gè)判斷質(zhì)數(shù)的程序
# 一個(gè)數(shù),如果只有1和它本身兩個(gè)因數(shù),這樣的數(shù)叫做質(zhì)數(shù)(或素?cái)?shù))
for n in range(2, 100):
for x in range(2, n):
if n % x == 0:
print(n, '等于', x, '*', n//x)
break
else:
# 循環(huán)中沒有找到元素
print(n, ' 是質(zhì)數(shù)')
# print(n,end = ', ')
break語(yǔ)句
break只能用于循環(huán)體內(nèi)。其效果是直接結(jié)束并退出當(dāng)前循環(huán),剩下的未循環(huán)的工作全部被忽略和取消。
Python的break只能退出一層循環(huán),對(duì)于多層嵌套循環(huán),不能全部退出。
for letter in 'Hello world': # 第一個(gè)實(shí)例
if letter == 'r':
break
print ('當(dāng)前字母為 :', letter)
--------------------------------------------
var = 10 # 第二個(gè)實(shí)例
while var > 0:
print ('當(dāng)前變量值為 :', var)
var -= 1
if var == 5:
break
continue語(yǔ)句
for letter in 'Hello world': # 第一個(gè)實(shí)例
if letter == 'o': # 字母為 o 時(shí)跳過(guò)輸出
continue
print ('當(dāng)前字母 :', letter)
-------------------------------------------------------
var = 10 # 第二個(gè)實(shí)例
while var > 0:
var -= 1
if var == 5: # 變量為 5 時(shí)跳過(guò)輸出
continue
print ('當(dāng)前變量值 :', var)
剛才前面跟大家說(shuō)過(guò),python中的break只能跳出當(dāng)前層的循環(huán),無(wú)法全部跳出。那如果有這么需求怎么辦?
flag = False # 用于控制外層循環(huán)的標(biāo)志
for i in range(10):
if flag: # 當(dāng)flag被內(nèi)層循環(huán)設(shè)置為True的時(shí)候,跳出外層循環(huán)
break
for j in range(10):
if j==7:
flag = True
break
print(i,j)
(寫在最后,由于以后每天晚上九點(diǎn)半之后會(huì)更新Python基礎(chǔ)的知識(shí)點(diǎn),記得來(lái)看哦?。?/strong>
此文來(lái)源于微博和今日頭條:邏二妞,轉(zhuǎn)載請(qǐng)注明出處,謝謝