Python 循环与范围

PythonBeginner
立即练习

介绍

在本实验中,你将学习如何在 Python 中使用 for 循环语句和 range() 函数。for 循环语句允许你遍历一系列元素,例如列表或字符串。range() 是一个内置函数,它返回一个数字序列,默认从 0 开始,默认每次递增 1,并在指定的数字处结束。

学习目标

  • for 循环语句
  • range() 函数
  • enumerate() 函数
  • zip() 函数
这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 88%。获得了学习者 100% 的好评率。

for 循环

for 循环是一种控制流语句,允许你遍历一系列元素。for 循环的语法如下:

for variable in sequence:
    statements

其中,sequence 是一个元素序列(例如列表、元组或字符串),而 variable 是一个变量,它会依次取序列中的每个值。循环内的 statements 会针对序列中的每个值执行。

打开一个新的 Python 解释器:

python3

以下是一个简单的 for 循环示例,它遍历一个整数列表并打印出每个值:

numbers = [1, 2, 3, 4, 5]
for number in numbers:
    print(number)

遍历字符串的示例:

for char in 'Hello':
    print(char)

range() 函数

range() 是 Python 中的一个内置函数,用于生成一个数字序列。range() 函数的语法如下:

range(start, stop, step)

其中,start 是序列的起始数字(默认值为 0),stop 是序列的结束数字(不包含在序列中),step 是序列中每个数字之间的增量(默认值为 1)。

你可以在 for 循环中使用 range() 函数来遍历一个数字序列。例如:

for i in range(5):
    print(i)

你也可以为 range() 函数指定 startstop 值:

for i in range(2, 5):
    print(i)

你甚至可以指定 step 值:

for i in range(2, 10, 2):
    print(i)

嵌套 for 循环

你也可以使用多个 for 循环来遍历嵌套的序列。例如:

for i in range(1, 3):
    for j in range(1, 4):
        print(f'i: {i}, j: {j}')

练习

现在轮到你练习使用 for 循环语句和 range() 函数了。编写一个程序,打印以下模式:

*
**
***
****
*****

一些提示:

你的程序应该使用两个 for 循环,一个嵌套在另一个内部。外层循环应遍历行数,内层循环应遍历列数。

为了完成这个练习,你需要使用 print() 函数来打印星号。你可以使用 range() 函数来控制循环的迭代次数。

enumerate() 函数

enumerate 函数接受一个可迭代对象(例如列表)作为输入,并返回一个生成元组的迭代器,每个元组包含元素的 index(索引)和 value(值)。在下面的示例中,我们使用解包操作符(index, fruit)将每个元组的索引和值分别赋值给变量 indexfruit

## 在 Python 中使用 enumerate 函数的 for 循环示例

## 用于迭代的示例列表
fruits = ['apple', 'banana', 'cherry']

## 使用 for 循环和 enumerate 函数遍历列表
for index, fruit in enumerate(fruits):
    print(f"Index: {index}, Fruit: {fruit}")

## 输出:
## Index: 0, Fruit: apple
## Index: 1, Fruit: banana
## Index: 2, Fruit: cherry

在上面的示例中,我们定义了一个包含元素 apple、banana 和 cherry 的列表 fruits

然后,我们使用 for 循环遍历 fruits 列表,并使用 enumerate 函数获取列表中每个元素的索引和值。在循环内部,我们使用字符串格式化打印出 indexfruit。默认情况下,enumerate 函数从 0 开始计数,但你可以使用可选参数 start 来指定不同的起始计数点。

zip() 函数

当你需要同时遍历多个列表或其他可迭代对象,或者希望将多个可迭代对象组合在一起时,zip() 函数会非常有用。

## 在 Python 中使用 zip() 函数的 for 循环示例

## 用于迭代的示例列表
fruits = ['apple', 'banana', 'cherry']
prices = [1.2, 3.5, 2.5]

## 使用 for 循环和 zip 函数遍历列表
for fruit, price in zip(fruits, prices):
    print(f"Fruit: {fruit}, Price: ${price}")

## 输出:
## Fruit: apple, Price: $1.2
## Fruit: banana, Price: $3.5
## Fruit: cherry, Price: $2.5

在上面的示例中,我们定义了两个列表 fruitsprices,分别包含元素 applebananacherry1.23.52.5

然后,我们使用 for 循环和 zip() 函数遍历这两个列表中的元素。zip() 函数接受多个可迭代对象作为输入,并返回一个生成元组的迭代器,每个元组包含输入可迭代对象中对应位置的元素。在上面的示例中,我们使用解包操作符(fruit, price)将每个元组的元素分别赋值给变量 fruitprice。在循环内部,我们使用字符串格式化打印出水果名称和价格。

如果输入的可迭代对象长度不一致,zip() 函数会在最短的可迭代对象结束时停止。

总结

在本实验中,你学习了如何使用 Python 的 for 循环语句和 range() 函数来遍历一系列元素。你掌握了 for 循环和 range() 函数的语法,并通过示例了解了如何使用它们遍历列表、字符串、元组和数字序列。你还学习了如何使用嵌套 for 循环来遍历嵌套序列。

现在你已经掌握了 for 循环和 range() 函数的基础知识,可以使用这些工具来完成诸如数据处理、生成输出等任务。