Python 中的 for 循环
Python 中的 for 循环是一个迭代函数。如果你有一个类似列表的序列对象,你可以使用 for 循环来迭代列表中包含的项目。
for 循环的功能与其他多个编程语言中看到的功能并没有太大的不同。
在本文中,我们将详细探讨 Python 中的 for 循环,并学习如何迭代不同的序列,包括列表、元组等。此外,我们还将学习如何使用 break 和 continue 语句来控制循环的流程。
Python for 循环的基本语法
Python 中 for 循环的基本语法如下所示。
for iterator_variable in sequence_name:Statements. . .Statements
让我更好地解释一下 Python for 循环的语法。
- 语句的第一个单词以 关键字 “for” 开头,表示 for 循环的开始。
- 然后是 迭代变量,它在序列上进行迭代,并可以在循环内部用于执行各种功能。
- 接下来是 Python 中的 “in” 关键字,告诉迭代变量在序列中循环。
- 最后,我们有 序列变量,可以是列表、元组或任何其他类型的迭代器。
- 循环的语句部分是你可以使用迭代变量进行各种操作的地方。
1. 使用 for 循环打印字符串的各个字母
Python 字符串是一系列字符。如果在你的任何编程应用程序中,你需要逐个遍历字符串的字符,你可以在这里使用 for 循环。
下面是如何实现的。
word="anaconda"for letter in word:print (letter)
输出:
anaconda
这个循环之所以有效,是因为 Python 将 “字符串” 视为一系列字符,而不是将字符串作为一个整体来看待。
2. 使用 for 循环遍历 Python 列表或元组
列表和元组是可迭代对象。让我们看看如何循环遍历这些对象中的元素。
words= ["Apple", "Banana", "Car", "Dolphin" ]for word in words:print (word)
输出:
AppleBananaCarDolphin
现在,让我们继续并学习如何循环遍历元组的元素。
nums = (1, 2, 3, 4)sum_nums = 0for num in nums:sum_nums = sum_nums + numprint(f'Sum of numbers is {sum_nums}')# 输出# Sum of numbers is 10
3. 嵌套 Python for 循环
当一个 for 循环位于另一个 for 循环内部时,它被称为嵌套 for 循环。嵌套 for 循环有多种应用。
考虑上面的列表示例。for 循环从列表中逐个打印单词。但是,如果我们想要逐个打印列表中每个单词的各个字符呢?
这就是嵌套 for 循环更好地发挥作用的地方。第一个循环(父循环)将逐个单词进行循环。第二个循环(子循环)将循环遍历每个单词的字符。
words= ["Apple", "Banana", "Car", "Dolphin" ]for word in words:# 这个循环从列表中获取单词print ("以下行将打印 "+word+" 的每个字母")for letter in word:# 这个循环从单词中获取字母print (letter)print("") # 这个打印用于打印一个空行
输出
!python 嵌套 for 循环示例
4. 使用 range() 函数的 Python for 循环
Python 的 range() 是内置函数之一。当你想让 for 循环运行特定次数,或者需要指定要打印的对象范围时,range 函数非常有效。考虑以下示例,我想打印数字 1、2 和 3。
for x in range(3):print("Printing:", x)# 输出# Printing: 0# Printing: 1# Printing: 2
range 函数除了起始和结束之外,还接受另一个参数。这就是 步长参数。它告诉 range 函数在每次计数之间要跳过多少个数字。
在下面的示例中,我使用数字 3 作为步长,你可以看到输出的数字是前一个数字 + 3。
for n in range(1, 10, 3):print("Printing with step:", n)
5. 使用 for 循环的 break 语句
break 语句用于提前退出 for 循环。当满足特定条件时,它用于中断 for 循环。
假设我们有一个数字列表,我们想要检查一个数字是否存在。我们可以遍历数字列表,如果找到数字,就跳出循环,因为我们不需要继续遍历剩余的元素。
在这种情况下,我们将使用 Python 的 if else 条件与我们的 for 循环。
nums = [1, 2, 3, 4, 5, 6]n = 2found = Falsefor num in nums:if n == num:found = Truebreakprint(f'List contains {n}: {found}')# 输出# List contains 2: True
6. 使用 for 循环的 continue 语句
我们可以在 for 循环中使用 continue 语句来跳过特定条件下的 for 循环体执行。
假设我们有一个数字列表,我们想要打印正数的总和。我们可以使用 continue 语句来跳过负数的 for 循环。
nums = [1, 2, -3, 4, -5, 6]sum_positives = 0for num in nums:if num < 0:continuesum_positives += numprint(f'Sum of Positive Numbers: {sum_positives}')
6. 带有 else 块的 Python for 循环
我们可以在 Python for 循环中使用 else 块。只有当 for 循环没有被 break 语句终止时,else 块才会被执行。
假设我们有一个函数,如果所有数字都是偶数,则打印数字的总和。
我们可以使用 break 语句来终止 for 循环,如果存在奇数。我们可以在 else 部分打印总和,这样只有在 for 循环正常执行时才会打印。
def print_sum_even_nums(even_nums):total = 0for x in even_nums:if x % 2 != 0:breaktotal += xelse: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 loop executed normally# Sum of numbers 20
结论
Python 中的 for 循环与其他编程语言非常相似。我们可以使用 break 和 continue 语句来改变执行流程。然而,在 Python 中,我们还可以在 for 循环中使用可选的 else 块。