Python技術(shù)分享—循環(huán)控制

循環(huán)控制

循環(huán)控制,就是讓程序循環(huán)運(yùn)行某一段代碼直到滿足退出的條件,才退出循環(huán)。

Python技術(shù)分享—循環(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)圖如下所示:

Python技術(shù)分享—循環(huán)控制
 內(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)注明出處,謝謝

推薦閱讀

改變世界到語(yǔ)言—python,看完才知道從事python憑什么高薪?。?019年最新三大方向資源)

這本書教你讀懂大腦中的神經(jīng)元,并一個(gè)月內(nèi)掌握Python基礎(chǔ),經(jīng)典

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在C語(yǔ)言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來(lái)閱讀 4,039評(píng)論 0 2
  • Swift提供了多種控制流聲明。包括while循環(huán)來(lái)多次執(zhí)行一個(gè)任務(wù);if,guard和switch聲明來(lái)根據(jù)確定...
    BoomLee閱讀 2,072評(píng)論 0 3
  • 三十天堅(jiān)持的力量 1.我是一個(gè)目標(biāo)清晰的人,堅(jiān)持就是勝利 2.我是一個(gè)認(rèn)真負(fù)責(zé)的人 3.我熱愛生活,渴望家庭幸福和...
    陽(yáng)光嗨閱讀 191評(píng)論 0 0
  • HashTable 是什么? HashTable 用來(lái)存儲(chǔ)多個(gè)鍵值對(duì);可以插入鍵值對(duì),可以通過(guò)鍵來(lái)查詢其對(duì)應(yīng)的值;...
    江海小流閱讀 5,659評(píng)論 0 0
  • 癡癡的愛,甜甜的戀 燃燒著多少歲月...
    Maytomorrowbebe閱讀 154評(píng)論 0 1

友情鏈接更多精彩內(nèi)容