圖解python | for循環

ShowMeAI研究中心

作者:韓信子@ShowMeAI
教程地址//www.showmeai.tech/tutorials/56
本文地址//www.showmeai.tech/article-detail/72
聲明:版權所有,轉載請聯繫平台與作者並註明出處


1.Python-for循環語句

Python中有很多序列形態的數據結構(如列表或字元串等),可以使用for循環進行遍歷。

語法:

for循環的語法格式如下:

for iterating_var in sequence:
   statements(s)

for循環語句的基本形式

流程圖:

for循環語句的執行流程

程式碼實例(程式碼可以在在線python3環境中運行)

for letter in 'ShowMeAI':     # 第一個實例
   print("當前字母: %s" % letter)
 
fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # 第二個實例
   print('當前水果: %s'% fruit)
 
print("完成!")

以上程式碼輸出結果:

當前字母: S
當前字母: h
當前字母: o
當前字母: w
當前字母: M
當前字母: e
當前字母: A
當前字母: I
當前水果: banana
當前水果: apple
當前水果: mango
完成!

2.通過序列索引迭代

另外一種執行循環的遍歷方式是通過索引,如下實例(程式碼可以在在線python3環境中運行):

fruits = ['香蕉', '蘋果',  '葡萄']
for index in range(len(fruits)):
   print('當前水果 : %s' % fruits[index])
 
print("完成!")

以上程式碼輸出結果:

當前水果 : 香蕉
當前水果 : 蘋果
當前水果 : 葡萄
完成!

以上實例我們使用了內置函數 len() 和 range(),函數 len() 返回列表的長度,即元素的個數。 range返回一個序列的數。

3.循環使用else語句

在 python 中,for … else 表示這樣的意思,for 中的語句和普通的沒有區別,else 中的語句會在循環正常執行完(即 for 不是通過 break 跳出而中斷的)的情況下執行,while … else 也是一樣。

for num in range(20,30):  # 迭代 10 到 20 之間的數字
   for i in range(2,num): # 根據因子迭代
      if num%i == 0:      # 確定第一個因子
         j=num/i          # 計算第二個因子
         print ('%d 等於 %d * %d' % (num,i,j))
         break            # 跳出當前循環
   else:                  # 循環的 else 部分
      print ('%d 是一個質數' % num)

以上程式碼輸出結果:

20 等於 2 * 10
21 等於 3 * 7
22 等於 2 * 11
23 是一個質數
24 等於 2 * 12
25 等於 5 * 5
26 等於 2 * 13
27 等於 3 * 9
28 等於 2 * 14
29 是一個質數

4.經典案例-for循環繪圖

我們來使用學習到的for循環,繪製不同的圖案,幫助大家進一步熟悉for循環用法

(1)空心等邊三角形

程式碼可以在在線python3環境中運行。

rows = int(input('輸入列數: '))

print("列印空心等邊三角形,這裡去掉if-else條件判斷就是實心的")
for i in range(0, rows + 1):#變數i控制行數
    for j in range(0, rows - i):#(1,rows-i)
        print(" ", end='')
        j += 1
    for k in range(0, 2 * i - 1):#(1,2*i)
        if k == 0 or k == 2 * i - 2 or i == rows:
            if i == rows:
                if k % 2 == 0:#因為第一個數是從0開始的,所以要是偶數列印*,奇數列印空格
                    print("*", end='')
                else:
                    print(" ", end='')#注意這裡的", end='' ",一定不能省略,可以起到不換行的作用
            else:
               print("*", end='')
        else:
            print(" ", end='')
        k += 1
    print("\n")
    i += 1

(2)菱形

程式碼可以在在線python3環境中運行。

rows = int(input('輸入列數: '))

print("列印空心等菱形,這裡去掉if-else條件判斷就是實心的")

rows = int(input('輸入列數: '))

for i in range(rows):#變數i控制行數
    for j in range(rows - i):#(1,rows-i)
        print(" ", end='')
        j += 1
    for k in range(2 * i - 1):#(1,2*i)
        if k == 0 or k == 2 * i - 2:
            print("*", end='')
        else:
            print(" ", end='')
        k += 1
    print("\n")
    i += 1
    #菱形的下半部分
for i in range(rows):
    for j in range(i):#(1,rows-i)
        print(" ", end='')
        j += 1
    for k in range(2 * (rows - i) - 1):#(1,2*i)
        if k == 0 or k == 2 * (rows - i) - 2:
            print("*", end='')
        else:
            print(" ", end='')
        k += 1
    print("\n")
    i += 1

5.影片教程

請點擊到B站查看【雙語字幕】版本

資料與程式碼下載

本教程系列的程式碼可以在ShowMeAI對應的github中下載,可本地python環境運行,可以訪問google的寶寶也可以直接藉助google colab一鍵運行與交互操作學習哦!

本教程系列涉及的Python速查表可以在以下地址下載獲取:

拓展參考資料

ShowMeAI相關文章推薦

ShowMeAI系列教程推薦

showmeai.tech