Python 中的 for 循环是一个迭代函数。如果你有一个类似列表的序列对象,你可以使用 for 循环来迭代列表中包含的项目。
for 循环的功能与其他多个编程语言中看到的功能并没有太大的不同。
在本文中,我们将详细探讨 Python 中的 for 循环,并学习如何迭代不同的序列,包括列表、元组等。此外,我们还将学习如何使用 break 和 continue 语句来控制循环的流程。
Python 中 for 循环的基本语法如下所示。
for iterator_variable in sequence_name:
Statements
. . .
Statements
让我更好地解释一下 Python for 循环的语法。
Python 字符串是一系列字符。如果在你的任何编程应用程序中,你需要逐个遍历字符串的字符,你可以在这里使用 for 循环。
下面是如何实现的。
word="anaconda"
for letter in word:
print (letter)
输出:
a
n
a
c
o
n
d
a
这个循环之所以有效,是因为 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}')
# 输出
# Sum of numbers is 10
当一个 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 循环示例
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)
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}')
# 输出
# List contains 2: True
我们可以在 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}')
我们可以在 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 loop executed normally
# Sum of numbers 20
Python 中的 for 循环与其他编程语言非常相似。我们可以使用 break 和 continue 语句来改变执行流程。然而,在 Python 中,我们还可以在 for 循环中使用可选的 else 块。