Python 中的 for 循环

0 股票
0
0
0
0

介绍

Python 中的 for 循环是一个递归函数。如果你有一个序列对象(例如列表),可以使用 for 循环来遍历列表中的元素。for 循环的功能与其他几种编程语言中的循环并无太大区别。在本文中,我们将详细探讨 Python 的 for 循环,并学习如何遍历各种序列,包括列表、元组等等。此外,我们还将学习如何使用 break 和 continue 语句来控制循环的执行过程。.

何时使用 for 循环

当您需要多次重复执行一段代码时,如果您不知道该代码块应该重复执行多少次,请使用“while 循环”语句。.

for 循环的语法

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

for itarator_variable in sequence_name:
Statements
. . .
Statements

Python for 循环语法详解

  • 语句的第一个词以关键字“for”开头,表示 for 循环的开始。.
  • 然后我们有一个迭代器变量,它可以遍历序列,并且可以在循环内部使用来执行各种功能。.
  • 接下来是 Python 中的“in”关键字,它告诉迭代器变量遍历序列中的元素。.
  • 最后,我们还有序列变量,它可以是列表、元组或任何其他类型的迭代器。.
  • 在循环语句部分,您可以操作迭代器变量并执行各种功能。

使用 for 循环打印字符串中的各个字母

Python 字符串是一串字符。如果你的程序需要逐个遍历字符串中的每个字符,可以使用 for 循环。.

方法如下。.

word="anaconda"
for letter in word:
print (letter)
a
n
a
c
o
n
d
a

这个循环之所以有效,是因为 Python 将“字符串”视为字符序列,而不是将字符串视为一个整体。.

使用 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}')
# Output
# Sum of numbers is 10

Python嵌套for循环

当我们在一个 for 循环中嵌套另一个 for 循环时,就称为嵌套 for 循环。嵌套 for 循环有很多用途。考虑上面的例子列表。for 循环打印列表中的每个单词。但如果我们想打印列表中每个单词的单个字符呢?

嵌套的for循环在这里最有效。第一个循环(父循环)会逐个遍历单词。第二个循环(子循环)会遍历每个单词中的字符。.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
#This loop is fetching word from the list
print ("The following lines will print each letters of "+word)
for letter in word:
#This loop is fetching letter for the word
print (letter)
print("") #This print is used to print a blank line

输出:


嵌套循环在结构上与嵌套 if 语句类似。

使用 range() 函数的 for 循环

Python 的 range() 函数是内置函数之一。当你想让 for 循环运行特定次数,或者需要指定要打印的对象范围时,range 函数非常实用。.

使用 range() 函数时,可以向其传递 1 到 3 个整数参数:

  • 开始 指定序列的起始整数值,如果未指定,则序列从 0 开始。.
  • 停止 始终是必填项,且为整数,取值范围为 0 到 1(不含 1)。
  • 确定下一次迭代的增加量(或负数时的减少量),如果省略此参数,则默认步长为 1。.

考虑以下示例,我想打印数字 1、2 和 3:

for x in range(3):
print("Printing:", x)
# Output
# Printing: 0
# Printing: 1
# Printing: 2

除了起始值和结束值之外,range 函数还接受另一个参数,即步长。该参数告诉 range 函数在每个计数之间要跳过多少个数字。.

在下面的示例中,我使用了数字 3 作为步长,你可以看到输出数字是前一个数字加 3。.

for n in range(1, 10, 3):
print("Printing with step:", n)
# Output
# Printing with step: 1
# Printing with step: 4
# Printing with step: 7

我们还可以使用负值作为步长参数来反向迭代,但我们需要相应地调整起始值和停止值参数:

for i in range(100,0,-10):
print(i)

这里,100 是起始值,0 是终止值,-10 是范围,因此循环从 100 开始,到 0 结束,每次迭代递减 10。输出结果如下:

Output
100
90
80
70
60
50
40
30
20
10

在 Python 编程中,for 循环通常使用 range() 序列类型作为其迭代的参数。.

带有 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}')
# Output
# List contains 2: True

继续语句,使用 for 循环

我们可以在 for 循环中使用 continue 语句,以便在满足特定条件时跳过循环体部分的执行。假设我们有一个数字列表,并且想要打印出所有正数的总和。我们可以使用 continue 语句跳过循环中负数部分的执行。.

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 块

我们可以在 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}')
# this will print the sum
print_sum_even_nums([2, 4, 6, 8])
# this won't print the sum because of an odd number in the sequence
print_sum_even_nums([2, 4, 5, 8])
# Output
# For loop executed normally
# Sum of numbers 20

使用顺序数据类型的 for 循环

列表和其他类型的数据序列也可以用作 for 循环的迭代参数。除了遍历 range() 函数之外,你还可以定义一个列表并遍历该列表。我们将列表赋值给一个变量,然后遍历该列表:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for shark in sharks:
print(shark)

在这种情况下,我们将打印列表中的每个项目。虽然我们使用了变量 shark,但我们也可以使用任何其他有效的变量名,并得到相同的输出:

Output
hammerhead
great white
dogfish
frilled
bullhead
requiem

上面的输出显示,for 循环遍历列表,并将列表中的每个元素打印在每一行。列表和其他基于序列的数据类型(例如字符串和元组)通常用于 for 循环,因为它们是可迭代的。您可以将这些数据类型与 range() 函数结合使用,向列表中添加元素,例如:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for item in range(len(sharks)):
sharks.append('shark')
print(sharks)
Output
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

这里,对于鲨鱼列表中的每个项目,我们都添加了一个占位符字符串«shark»。您也可以使用 for 循环从头开始构建列表:

integers = []
for i in range(10):
integers.append(i)
print(integers)

在这个例子中,整数被初始化为一个空列表,但 for 循环会按如下方式填充列表:

Output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

同样,我们可以遍历字符串:

sammy = 'Sammy'
for letter in sammy:
print(letter)
Output
S
a
m
m
y

遍历元组的方式与上面遍历列表或字符串的方式相同。遍历字典时,务必注意键值对的结构,以确保调用字典中的正确元素。以下示例同时调用了键和值:

sammy_shark = {'name': 'Sammy', 'animal': 'shark', 'color': 'blue', 'location': 'ocean'}
for key in sammy_shark:
print(key + ': ' + sammy_shark[key])
Output
name: Sammy
animal: shark
location: ocean
color: blue

在使用 for 循环操作字典时,迭代变量对应于字典的键,而 dictionary_variable[iterating_variable] 对应于字典的值。在上面的例子中,迭代变量 key 表示键,而 sammy_shark[key] 表示值。循环常用于迭代和操作顺序数据类型。.

结果

Python 中的 for 循环与其他编程语言非常相似。我们可以使用 break 和 continue 语句来改变 for 循环的执行顺序。但是,在 Python 中,我们还可以选择阻塞另一个循环。.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

您可能也喜欢