Python 循環結結構

  • 2020 年 2 月 13 日
  • 筆記

循環結結構

Python循環結構

  • 循環結構就是為了將相似或者相同的程式碼操作變得更見簡潔,使得程式碼可以重複利用
  • 循環結構分為2類:while循環 和 for..in循環

while型循環

格式1:      while 條件表達式:          循環的內容          [變數的變化]    格式2:        while 條件表達式:          循環的內容          [變數的變化]      else:          python語句..
  • 注意:while循環中的else是在while條件表達式為假的情況下執行的程式碼內容,一般用於判斷起始條件是否為假等相關操作。
  • 實例使用了 while 來計算 1 到 100 的總和:
#!/usr/bin/env python3    n = 100  sum = 0  counter = 1  while counter <= n:      sum = sum + counter      counter += 1    print("1 到 %d 之和為: %d" % (n,sum))  
  • 執行結果如下:
1 到 100 之和為: 5050  
死循環:
  • 死循環就是循環不會終止的循環類型,通過將用於判斷的條件表達式設置為永遠為True來實現。
    while True:          python程式碼...          python程式碼...          ...  
#!/usr/bin/python3    var = 1  while var == 1 :  # 表達式永遠為 true     num = int(input("輸入一個數字  :"))     print ("你輸入的數字是: ", num)    print ("Good bye!")  
  • 你可以使用 CTRL+C 來退出當前的無限循環
  • 執行以上腳本,輸出結果如下:
輸入一個數字  :5  你輸入的數字是:  5  輸入一個數字  :

for … in 循環

  • for…in 循環用於遍歷容器類的數據(字元串,列表,元組,字典,集合)
格式:        for  變數  in  容器:          python程式碼,可以在此使用變數    格式2:        for 變數1,變數2 in 容器:          python程式碼,可以在此使用變數1和變數2  
  • 要求遍歷的容器必須是以下幾種格式:
    • [(),(),()] 列表中有元組
    • [[],[],[]] 列表中有列表
    • ((),(),()) 元組中有元組
    • {(),(),()} 集合中有元組
    • 字典的特殊使用
格式3:      for  變數  in  容器:          python程式碼,可以在此使用變數      else:          循環結束是執行的程式碼!  
>>>languages = ["C", "C++", "Perl", "Python"]  >>> for x in languages:  ...     print (x)  ...  C  C++  Perl  Python  >>>

range()函數:

  • 如果你需要遍曆數字序列,可以使用內置range()函數。它會生成數列,例如:
>>>for i in range(5):  ...     print(i)  ...  0  1  2  3  4  
>>>for i in range(5,9) :      print(i)      5  6  7  8  >>>  
>>>for i in range(0, 10, 3) :      print(i)      0  3  6  9  >>>  
>>>for i in range(-10, -100, -30) :      print(i)    -10  -40  -70  >>>  
  • 您可以結合range()和len()函數以遍歷一個序列的索引,如下所示:
>>>a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']  >>> for i in range(len(a)):  ...     print(i, a[i])  ...  0 Google  1 Baidu  2 Runoob  3 Taobao  4 QQ  >>>  
輸出乘法口訣:
for i in range(1,10):      for j in range(1,i+1):          print(str(i)+'*'+str(j)+"="+str(i*j),end="")      print()  

逆向輸出乘法口訣:

for i in range(9,0,-1):      for j in range(i,0,-1):          print(str(i)+'*'+str(j)+"="+str(i*j),end="")      print()

break和continue語句及循環中的else子句:

break語句:
  • break作用:在循環中break的作用是終止當前循環結構的後續操作,一旦程式運行了break,循環也就終止了!
  • break 語句可以跳出 for 和 while 的循環體。如果你從 for 或 while 循環中終止,任何對應的循環 else 塊將不執行。實例如下:
#!/usr/bin/python3    for letter in 'Runoob':     # 第一個實例     if letter == 'b':        break     print ('當前字母為 :', letter)    var = 10                    # 第二個實例  while var > 0:     print ('當期變數值為 :', var)     var = var -1     if var == 5:        break    print ("Good bye!")  
  • 執行以上腳本輸出結果為:
當前字母為 : R  當前字母為 : u  當前字母為 : n  當前字母為 : o  當前字母為 : o  當期變數值為 : 10  當期變數值為 : 9  當期變數值為 : 8  當期變數值為 : 7  當期變數值為 : 6  Good bye!  
continue語句:
  • continue語句被用來告訴Python跳過當前循環塊中的剩餘語句,然後繼續進行下一輪循環。
#!/usr/bin/python3    for letter in 'Runoob':     # 第一個實例     if letter == 'o':        # 字母為 o 時跳過輸出        continue     print ('當前字母 :', letter)    var = 10                    # 第二個實例  while var > 0:     var = var -1     if var == 5:             # 變數為 5 時跳過輸出        continue     print ('當前變數值 :', var)  print ("Good bye!")  
  • 執行以上腳本輸出結果為:
當前字母 : R  當前字母 : u  當前字母 : n  當前字母 : b  當前變數值 : 9  當前變數值 : 8  當前變數值 : 7  當前變數值 : 6  當前變數值 : 4  當前變數值 : 3  當前變數值 : 2  當前變數值 : 1  當前變數值 : 0  Good bye!  
  • 循環語句可以有 else 子句,它在窮盡列表(以for循環)或條件變為 false (以while循環)導致循環終止時被執行,但循環被break終止時不執行。
  • 如下實例用於查詢質數的循環例子:
#!/usr/bin/python3    for n in range(2, 10):      for x in range(2, n):          if n % x == 0:              print(n, '等於', x, '*', n//x)              break      else:          # 循環中沒有找到元素          print(n, ' 是質數')  
  • 執行以上腳本輸出結果為:
2  是質數  3  是質數  4 等於 2 * 2  5  是質數  6 等於 2 * 3  7  是質數  8 等於 2 * 4  9 等於 3 * 3

1

END