Python for loop [附帶簡單示例]

在Python中,for循环是一个迭代函数。如果你有一个序列对象,比如一个列表,你可以使用for循环来遍历列表中的每个项。

for循环的功能与其他多种编程语言中的循环功能并没有太大区别。

在本文中,我们将详细探讨Python中的for循环,并学习如何遍历不同的序列,包括列表、元组等。此外,我们还将学习如何使用break和continue语句来控制循环的流程。

Python for循环的基本语法

Python中for循环的基本语法如下所示。

for itarator_variable in sequence_name:
	Statements
	. . .
	Statements

让我更好地解释一下Python for循环的语法。

  • 语句的第一个单词以关键字“for”开头,表示for循环的开始。
  • 然后是迭代变量,它在循环中迭代序列,并可以在循环中执行各种操作。
  • 接下来是Python中的“in”关键字,它告诉迭代变量在序列中循环遍历元素。
  • 最後,我們有序列變數,可以是列表、元組或任何其他類型的迭代器。
  • 循環中的語句部分是您可以使用迭代器變數並執行各種功能的地方

1. 使用for循環打印字符串的各個字母

Python字符串是一系列字符。如果您的任何編程應用中需要單獨查看字符串的字符,您可以在這裡使用for循環。

以下是您的操作方式。

word="anaconda"
for letter in word:
	print (letter)

輸出:

a
n
a
c
o
n
d
a

這個循環之所以有效是因為Python將“字符串”視為一系列字符,而不是將字符串作為整體看待。

2. 使用for循環迭代Python列表或元組

列表和元組是可迭代對象。現在讓我們看看如何遍歷這些對象中的元素。

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
	print (word)

輸出:

Apple
Banana
Car
Dolphin

現在,讓我們繼續並開始遍歷元組中的元素。

nums = (1, 2, 3, 4)

sum_nums = 0

for num in nums:
    sum_nums = sum_nums + num

print(f'Sum of numbers is {sum_nums}')

# 輸出
# 數字的總和為10

3. Python for循環的嵌套

當我們在另一個for循環內有一個for循環時,它被稱為嵌套for循環。嵌套for循環有多個應用場景。

考慮上面的列表示例。for循環從列表中逐個打印單詞。但是如果我們想要打印列表中每個單詞的各個字符呢?

這就是嵌套for循環更好的地方。第一個循環(父循環)將逐個遍歷單詞。第二個循環(子循環)將遍歷每個單詞的字符。

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
        # 這個循環從列表中獲取單詞
        print ("The following lines will print each letters of "+word)
        for letter in word:
                # 這個循環從單詞中獲取字母
                print (letter)
        print("") # 這個打印用於打印一個空行

輸出

4. 使用range()函數的Python for迴圈

Python的range()是其中一個內建函數。當你希望for迴圈運行特定次數,或者需要指定一系列對象進行輸出時,range函數非常有用。考慮以下示例,我希望輸出數字1、2和3。

for x in range(3):
    print("Printing:", x)
	
# 輸出

# 輸出:0
# 輸出:1
# 輸出:2

range函數除了開始和結束之外還接受另一個參數。這是步驟參數。它告訴range函數在每次計數之間跳過多少數字。

在下面的示例中,我將數字3用作步驟,你可以看到輸出數字是前一個數字+3。

for n in range(1, 10, 3):
    print("Printing with step:", n)
	
# 輸出

# 帶步驟輸出:1
# 帶步驟輸出:4
# 帶步驟輸出:7

5. 使用for迴圈的break語句

break語句用於提前退出for循環。當滿足特定條件時,它用於中止for循環。

假設我們有一個數字列表,我們想檢查某個數字是否存在。我們可以遍歷數字列表,如果找到該數字,就退出循環,因為我們不需要繼續遍歷剩餘的元素。

在這種情況下,我們將使用Python的if else條件以及我們的for循環。

nums = [1, 2, 3, 4, 5, 6]

n = 2

found = False
for num in nums:
    if n == num:
        found = True
        break

print(f'List contains {n}: {found}')

# 輸出
# 列表包含2:True

6. 使用for迴圈的continue語句

我們可以在for循環內部使用continue語句,以跳過特定條件下的for循環體的執行。

假設我們有一個數字列表,我們想打印正數的總和。我們可以使用continue語句來跳過負數的for循環。

nums = [1, 2, -3, 4, -5, 6]

sum_positives = 0

for num in nums:
    if num < 0:
        continue
    sum_positives += num

print(f'Sum of Positive Numbers: {sum_positives}')

6. Python 的 for 迴圈帶有 else 塊

我們可以在 Python 的 for 迴圈中使用 else 塊。只有當 for 迴圈 沒有被 break 陳述終止時,else 塊才會被執行。

假設我們有一個函數,僅當所有數字都是偶數時才打印數字的總和。

如果存在奇數,我們可以使用 break 陳述來終止 for 迴圈。我們可以在 else 部分打印總和,這樣它只在 for 迴圈正常執行時打印。

def print_sum_even_nums(even_nums):
    total = 0

    for x in even_nums:
        if x % 2 != 0:
            break

        total += x
    else:
        print("For loop executed normally")
        print(f'Sum of numbers {total}')


# 這將打印總和
print_sum_even_nums([2, 4, 6, 8])

# 由於序列中存在奇數,這不會打印總和
print_sum_even_nums([2, 4, 5, 8])

# 輸出

# For 迴圈正常執行
# 數字的總和為 20

結論

Python 中的 for 迴圈與其他編程語言非常相似。我們可以使用 break 和 continue 陳述與 for 迴圈一起改變執行。然而,在 Python 中,我們也可以在 for 迴圈中有可選的 else 塊。

I hope you have gained some interesting ideas from the tutorial above. If you have any questions, let us know in the comments below.

Source:
https://www.digitalocean.com/community/tutorials/python-for-loop-example