使用计算机编程中的循环可以让我们自动化和重复执行类似的任务多次。在本教程中,我们将介绍 Python 的for循环。
for
循环实现了基于循环计数器或循环变量的代码重复执行。这意味着for
循环通常在进入循环之前已知迭代次数时使用,不像while循环是基于条件的。
您应该已经安装了 Python 3,并在计算机或服务器上设置了编程环境。如果您还没有设置编程环境,可以参考适用于您的操作系统(Ubuntu、CentOS、Debian等)的本地编程环境或服务器编程环境的安装和设置指南。
在 Python 中,for
循环的构造方式如下:
for [迭代变量] in [序列]:
[做某事]
正在执行的某事
将一直执行,直到序列结束。
让我们看一个遍历数值范围的for
循环:
for i in range(0,5):
print(i)
当我们运行这个程序时,输出如下:
0
1
2
3
4
这个for
循环将i
设置为它的迭代变量,序列存在于0到5的范围内。
然后在循环内,我们每次迭代打印一个整数。请记住,在编程中,我们倾向于从索引0开始,这就是为什么虽然打印了5个数字,但它们的范围是从0到4。
当程序需要多次重复执行一块代码时,通常会看到并使用for
循环。
Python内置的不可变序列类型之一是range()
。在循环中,range()
用于控制循环重复的次数。
在使用range()
时,可以向其传递1到3个整数参数:
start
表示序列开始的整数值,如果不包括此参数,则start
从0开始stop
始终是必需的,是计数到但不包括的整数step
设置下一次迭代增加(或在负数情况下减少)的量,如果省略,则step
默认为1我们将回顾一些传递不同参数给range()
的示例。
首先,让我们只传递stop
参数,这样我们的序列设置为range(stop)
:
for i in range(6):
print(i)
在上面的程序中,stop
参数是6,所以代码将从0到6迭代(不包括6):
0
1
2
3
4
5
接下来,我们将看看range(start, stop)
,传递了开始迭代和停止迭代的值:
for i in range(20,25):
print(i)
在这里,范围从20(包括)到25(不包括),所以输出如下:
20
21
22
23
24
range()
的step
参数类似于在切片字符串时指定步长,它可以用于在序列中跳过值。
使用所有三个参数,step
位于最后位置:range(start, stop, step)
。首先,让我们使用具有正值的step
:
for i in range(0,15,3):
print(i)
在这种情况下,for
循环设置为从0到15打印数字,但步长为3,因此只打印每三个数字,如下所示:
0
3
6
9
12
我们还可以使用负值作为step
参数进行反向迭代,但必须相应地调整start
和stop
参数:
for i in range(100,0,-10):
print(i)
在这里,100是start
值,0是stop
值,-10是范围,所以循环从100开始,每次迭代减少10结束于0。输出如下:
100
90
80
70
60
50
40
30
20
10
在Python编程中,for
循环通常使用range()
序列类型作为其迭代的参数。
列表和其他数据序列类型也可以作为for
循环中的迭代参数。您可以定义一个列表,并遍历该列表。
我们将一个列表赋值给一个变量,然后遍历该列表:
sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for shark in sharks:
print(shark)
在这种情况下,我们打印出列表中的每个项目。虽然我们使用了变量shark
,但我们可以使用任何其他有效的变量名,输出将是相同的:
hammerhead
great white
dogfish
frilled
bullhead
requiem
上面的输出显示,for
循环遍历了列表,并逐行打印列表中的每个项目。
列表和其他基于序列的数据类型(如字符串和元组)通常与循环一起使用,因为它们是可迭代的。您可以将这些数据类型与range()
结合使用,例如向列表添加项目:
sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for item in range(len(sharks)):
sharks.append('shark')
print(sharks)
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']
在这里,我们为sharks
列表的每个项目长度添加了一个占位符字符串'shark'
。
您还可以使用for
循环从头开始构建一个列表:
integers = []
for i in range(10):
integers.append(i)
print(integers)
在这个例子中,列表integers
被初始化为空,但for
循环像这样填充了列表:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
类似地,我们可以遍历字符串:
sammy = 'Sammy'
for letter in sammy:
print(letter)
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])
name: Sammy
animal: shark
location: ocean
color: blue
在使用字典与for
循环时,迭代变量对应于字典的键,dictionary_variable[iterating_variable]
对应于值。在上面的例子中,迭代变量key
用于表示键,sammy_shark[key]
用于表示值。
循环经常用于遍历和操作顺序数据类型。
在Python中,循环可以嵌套,就像其他编程语言一样。
嵌套循环是一个循环,它发生在另一个循环内部,结构上类似于嵌套的if
语句。构造方式如下:
for [第一个迭代变量] in [外部循环]: # 外部循环
[做某事] # 可选
for [第二个迭代变量] in [嵌套循环]: # 嵌套循环
[做某事]
程序首先遇到外部循环,执行其第一次迭代。这第一次迭代触发内部的嵌套循环,然后运行到完成。然后程序返回到外部循环的顶部,完成第二次迭代,并再次触发嵌套循环。再次,嵌套循环运行到完成,程序返回到外部循环的顶部,直到序列完成或断开或其他语句中断该过程。
让我们实现一个嵌套的for
循环,以便我们可以更仔细地查看。在这个例子中,外部循环将遍历一个名为num_list
的整数列表,内部循环将遍历一个名为alpha_list
的字符串列表。
num_list = [1, 2, 3]
alpha_list = ['a', 'b', 'c']
for number in num_list:
print(number)
for letter in alpha_list:
print(letter)
当我们运行这个程序时,我们将收到以下输出:
1
a
b
c
2
a
b
c
3
a
b
c
输出说明程序完成了外部循环的第一次迭代,打印了1
,然后触发了内部循环的完成,依次打印了a
、b
、c
。一旦内部循环完成,程序返回到外部循环的顶部,打印2
,然后再次打印整个内部循环(a
、b
、c
),等等。
嵌套的for
循环对于遍历由列表组成的列表中的项目非常有用。在由列表组成的列表中,如果我们只使用一个for
循环,程序将输出每个内部列表作为一个项目:
list_of_lists = [['hammerhead', 'great white', 'dogfish'],[0, 1, 2],[9.9, 8.8, 7.7]]
for list in list_of_lists:
print(list)
['hammerhead', 'great white', 'dogfish']
[0, 1, 2]
[9.9, 8.8, 7.7]
为了访问内部列表的每个单独项目,我们将实现一个嵌套的for
循环:
list_of_lists = [['hammerhead', 'great white', 'dogfish'],[0, 1, 2],[9.9, 8.8, 7.7]]
for list in list_of_lists:
for item in list:
print(item)
hammerhead
great white
dogfish
0
1
2
9.9
8.8
7.7
当我们使用嵌套的for
循环时,我们能够遍历列表中包含的各个项目。
我们可以在我们的自然语言处理工具包(NLTK)教程中看到嵌套的for
循环在一个工作程序中的使用。
本教程介绍了for
循环在Python中的工作原理以及如何构造它们。For循环继续循环执行一块代码,直到达到特定的次数。
从这里,您可以继续学习关于循环的教程,如while循环和break、continue和pass语句。
要在项目中使用for
循环,请参考以下教程: