溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python循環(huán)語句代碼詳解

發(fā)布時(shí)間:2021-09-18 16:09:48 來源:億速云 閱讀:180 作者:chen 欄目:編程語言

本篇內(nèi)容介紹了“Python循環(huán)語句代碼詳解”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

.1 while循環(huán)

循環(huán)語句是程序設(shè)計(jì)中常用的語句之一。任何編程語言都有while循環(huán),Python也不例外。while循環(huán)的格式如下所示。

 while(表達(dá)式):      …  else:      …

while循環(huán)的執(zhí)行過程:當(dāng)循環(huán)表達(dá)式為真時(shí),依次執(zhí)行while中的語句。直到循環(huán)表達(dá)式的值為False,程序的流程轉(zhuǎn)到else語句。其中else子句可以省略,表達(dá)式兩側(cè)的括號(hào)也可以省略。

注意:while循環(huán)中的else子句也屬于循環(huán)的一部分,最后一次循環(huán)結(jié)束后將執(zhí)行else子句。

下面這段代碼演示了while循環(huán)的使用。程序首先要求輸入5個(gè)數(shù)字,然后依次輸出這5個(gè)數(shù)字。

 # while循環(huán)  numbers = input("輸入幾個(gè)數(shù)字,用逗號(hào)分隔:").split(",")  print(numbers)  x = 0  while x < len(numbers):    # 當(dāng)x的值小于輸入字?jǐn)?shù)的個(gè)數(shù)的時(shí)候,執(zhí)行循環(huán)內(nèi)容          print (numbers[x])      x += 1                  # 一個(gè)循環(huán)結(jié)束時(shí)給x加1

【代碼說明】

  • 第2行代碼使用input()捕獲輸入。按照提示輸入5個(gè)數(shù)字,并用逗號(hào)分隔。input()根據(jù)輸入的逗號(hào),生成一個(gè)列表。

  • 第3行代碼輸出列表numbers的內(nèi)容。

  • 第4行代碼定義變量x的值為0。

  • 第5行代碼循環(huán)列表numbers。

  • 第6行代碼輸出列表中第x+1個(gè)數(shù)字的值。

  • 第7行代碼,每次循環(huán)使變量x增1。

下面【例3-6】中的這段代碼演示了else子句在while循環(huán)中的使用。當(dāng)變量x的值大于0時(shí),執(zhí)行循環(huán),否則輸出變量x的值。

【例3-6.py】

 # 帶else子句的while循環(huán)  x = float(input("輸入x的值:"))   # 接收用戶輸入的數(shù)字并轉(zhuǎn)換為float類型  i = 0  while(x  != 0):                  # Python 3中的不等于不再使用<>,一律使用!=      if(x > 0):          x -= 1                  # 如果x大于0,則減1      else:          x += 1                 # 如果x小于0,則加1      ii = i + 1      print( "第%d次循環(huán):%f" %(i, x))  else:      print ("x等于0:", x)

【代碼說明】

  • 第2行代碼輸入變量x的值。

  • 第3行代碼定義變量i,變量i表示循環(huán)次數(shù)。

  • 第4行代碼,給出循環(huán)條件x != 0。如果x不等于0,則執(zhí)行第5行代碼;否則,執(zhí)行else子句的內(nèi)容。

  • 第5行代碼,判斷變量x的值是否大于0。

  • 第6行代碼,如果x的值大于0,則每次循環(huán)都減1。

  • 第7行代碼,判斷變量x的值是否小于0。

  • 第8行代碼,如果x的值小于0,則每次循環(huán)都加1。

  • 第9行代碼,每次循環(huán)使變量i的值加1。

  • 第11行代碼,循環(huán)結(jié)束,else子句輸出變量x的值。輸出結(jié)果(假設(shè)輸入數(shù)字為0):x等于0:0。

在使用循環(huán)語句時(shí),應(yīng)注意循環(huán)表達(dá)式的布爾值,避免出現(xiàn)死循環(huán)。死循環(huán)是指循環(huán)條件永遠(yuǎn)為真的循環(huán)。例如:

 i = 1  while i > 0:     # i永遠(yuǎn)大于0      ii = i + 1      print(i)

這段代碼就是一個(gè)死循環(huán),變量i的值永遠(yuǎn)都大于0。

2. for循環(huán)

for循環(huán)用于遍歷一個(gè)集合,依次訪問集合中的每個(gè)項(xiàng)目。for循環(huán)的格式如下所示。

 for 變量 in 集合:      &hellip;  else:      &hellip;

for&hellip;in&hellip;循環(huán)的執(zhí)行過程:每次循環(huán)從集合中取出一個(gè)值,并把該值賦值給變量。集合可以是元組、列表、字典等數(shù)據(jù)結(jié)構(gòu)。其中else子句可以省略。

注意:for循環(huán)中的else子句也屬于循環(huán)的一部分,最后一次循環(huán)結(jié)束后將執(zhí)行else子句。

for&hellip;in&hellip;循環(huán)通常與range()函數(shù)一起使用,range()返回一個(gè)列表,for&hellip;in&hellip;遍歷列表中的元素。range()函數(shù)的聲明如下:

class range(object)    range(stop) -> range object range(start, stop[, step]) -> range object

【代碼說明】

range()返回一個(gè)range對象,列表的元素值由3個(gè)參數(shù)決定:參數(shù)start表示列表開始的值,默認(rèn)值為0;參數(shù)stop表示列表結(jié)束的值,該參數(shù)不可缺少;參數(shù)setp表示步長,即每次遞增或遞減的值,默認(rèn)值為1。

下面【例3-7】中的這段代碼遍歷range()生成的列表,過濾出正數(shù)、負(fù)數(shù)和0。

【例3-7.py】

 # for in語句  for x in range(-1, 2):      if x > 0:           print ("正數(shù):",x)      elif x == 0 :           print ("零:",x)      else:          print ("負(fù)數(shù):",x)  else:     print ("循環(huán)結(jié)束")

【代碼說明】

  • 第2行代碼遍歷range(-1,2)生成的列表。range(-1,2)返回的3個(gè)數(shù)字分別為-1、0、1。每次循環(huán)結(jié)束,變量x的值依次為-1、0、1。

  • 第3行代碼判斷變量x的值是否大于0。

  • 第4行代碼輸出正數(shù)的值。輸出結(jié)果為“正數(shù):1”。

  • 第5行代碼判斷變量x的值是否等于0。

  • 第6行代碼,輸出結(jié)果為“零:0”。

  • 第8行代碼,輸出負(fù)數(shù)的值。輸出結(jié)果為“負(fù)數(shù):-1”。

  • 第9行代碼并沒有結(jié)束for循環(huán),else子句執(zhí)行后循環(huán)才結(jié)束。輸出結(jié)果為“負(fù)數(shù):-1”。

在C、Java語言中,支持如下結(jié)構(gòu)的for語句。

for(表達(dá)式1; 表達(dá)式2; 表達(dá)式3)  語句塊

Python不支持這樣的for循環(huán)。如果需要編寫類似功能的循環(huán),可以使用while循環(huán)。例如:

 x = 0  while x < 5:      print(x)      xx = x + 2

while循環(huán)的寫法比較瑣碎,需要比較判斷。因此,對此也可以使用for循環(huán),借助range()函數(shù)來實(shí)現(xiàn)。例如:

 for x in range(0, 5, 2):      print (x)

【代碼說明】

輸出的數(shù)字在[0,5)這個(gè)區(qū)間,不包括5。每次循環(huán)結(jié)束,x的值加2。輸出結(jié)果:

0 2 4

這里只用了兩行代碼就實(shí)現(xiàn)了傳統(tǒng)for循環(huán)。如果要用條件表達(dá)式作為循環(huán)的條件,可以構(gòu)造range()函數(shù)來實(shí)現(xiàn)。

3. break和continue語句

break語句可以使程序跳出循環(huán)語句,從而執(zhí)行循環(huán)體之外的程序,即break語句可以提前結(jié)束循環(huán)。例如,模擬switch分支結(jié)構(gòu)使用了break語句。

 operator = "+"   x = 1   y = 2   for case in switch(operator):   # switch只能用于for... in...循環(huán)中       if case('+'):           print (x + y)           break       if case('-'):           print (x - y)          break      if case('*'):          print (x * y)          break      if case('/'):          print (x / y)          break      if case():                      # 默認(rèn)分支          print ("")

【代碼說明】

第7行代碼中使用了break。當(dāng)變量operator的值為“+”,則執(zhí)行表達(dá)式x +  y,然后中斷switch分支結(jié)構(gòu),后面的case分支都不會(huì)執(zhí)行。此時(shí)輸出結(jié)果為3。后面的break作用相同。當(dāng)匹配到某個(gè)case后,程序?qū)⑻鰏witch。

如果第一個(gè)case不使用break子句,程序?qū)⑤敵鰞蓚€(gè)值,分別是3和-1。因?yàn)閳?zhí)行完輸出表達(dá)式x +  y后,分支結(jié)構(gòu)并沒有中斷,程序?qū)⒘鬓D(zhuǎn)到下面一個(gè)case。然后繼續(xù)計(jì)算表達(dá)式x &ndash;  y的值,遇到后面的break語句才退出分支結(jié)構(gòu)。break語句在循環(huán)結(jié)構(gòu)中也有類似的作用?!纠?-8】中的這段代碼將從0到99中查找用戶輸入的值。

【例3-8.py】

 x = int(input("輸入x的值:"))  y = 0  for y in range(0, 100):      if x == y:          print ("找到數(shù)字:", x)          break  else:      print("沒有找到")

【代碼說明】

  • 第1行代碼捕獲用戶輸入的值,并把該值轉(zhuǎn)換為int類型,賦值給變量x。

  • 第2行代碼定義一個(gè)變量y,變量y用于暫存需要遍歷的列表的值。

  • 第3行代碼使用for&hellip;in&hellip;循環(huán)遍歷range(0, 100)返回的列表。range(0, 100)的返回值為0、1、2、&hellip;、99。

  • 第4行代碼判斷輸入的值是否等于列表中的值。如果條件成立,輸出查找到的數(shù)字,并立即退出循環(huán)。循環(huán)結(jié)束,后面的else子句將不會(huì)被執(zhí)行。

  • 第7行代碼,當(dāng)沒有找到輸入的值時(shí),else子句后面的代碼將被執(zhí)行。

注意:break語句不能運(yùn)行在循環(huán)體或分支語句之外,否則,Python解釋器將提示如下錯(cuò)誤。

SyntaxError: 'break' outside loop

continue語句也是用來跳出循環(huán)的語句,但是與break不同的是,使用continue語句不會(huì)跳出整個(gè)循環(huán)體,只是跳出當(dāng)前的循環(huán),然后繼續(xù)執(zhí)行后面的循環(huán)。

 x = 0  for i in [1,2,3,4,5]:      if x == i:      continue  x  += i  print("x的值為", x)

【代碼說明】

  • 第1行代碼將x賦值為0。

  • 第2行代碼使用for...in...語句遍歷列表[1,2,3,4,5]。

  • 第3行代碼將x與i進(jìn)行比較,如果x與值i相等,則執(zhí)行第4行的continue語句,停止當(dāng)前循環(huán),即不再執(zhí)行第5行代碼,繼續(xù)執(zhí)行下一個(gè)循環(huán)。

  • 第6行代碼打印出最終的結(jié)果,輸出為12。

“Python循環(huán)語句代碼詳解”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI