提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
Python 中的循环是一种控制结构,它允许你重复执行一段代码块,直到满足特定的条件。Python 提供了两种基本的循环结构:for 循环和 while 循环。
一、for循环是什么?
在Python中,for循环是一种常用的迭代结构,它允许你遍历任何序列(如列表、元组、字符串)或其他可迭代对象(如字典的键、集合、文件对象等),并对序列中的每个元素执行一段代码。
使用步骤
1.for循环语法
代码如下(示例):
for 变量 in 序列:
# 循环体
# 这里编写需要针对序列中每个元素执行的代码
2.实例
假设我们有一个列表,我们想打印出列表中的每个元素代码如下(示例):
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
for循环也可以用来遍历字符串中的每个字符代码如下(示例):
greeting = "hello"
for char in greeting:
print(char)
for循环也可以用来遍历字符串中的每个字符代码如下(示例):
greeting = "hello"
for char in greeting:
print(char)
使用range()函数,for循环可以遍历一个指定的数字范围。range()函数生成一个数字序列,通常用于在for循环中迭代代码如下(示例):
for i in range(5): # 生成0到4的数字序列
print(i)
# 也可以指定起始值和结束值
for i in range(1, 6): # 生成1到5的数字序列
print(i)
# 还可以指定步长
for i in range(0, 10, 2): # 生成0到8(包括0但不包括10)的偶数序列
print(i)
使用range()函数,for循环可以遍历一个指定的数字范围。range()函数生成一个数字序列,通常用于在for循环中迭代代码如下(示例):
for key, value in person.items():
print(key, value)
遍历键值对(使用.items()方法)代码如下(示例):
person = {"name": "John", "age": 30, "city": "New York"}
for key in person:
print(key)
二、Iterable可迭代类型是什么?
在Python中,Iterable(可迭代类型)是一个非常重要的概念。简单来说,一个对象如果可以被遍历(即可以一次返回它的一个成员),那么这个对象就是可迭代的。这意味着你可以使用for循环来遍历它,或者使用iter()函数来获取它的迭代器。
Python中的大多数内置容器类型都是可迭代的,包括:
- 列表(list)
- 元组(tuple)
- 字符串(str)
- 字典(dict)的键(通过.keys()方法)、值(通过.values()方法)或键值对(通过.items()方法)
- 集合(set)
- 布尔类型(bool),尽管它们只有两个值(True和False),但技术上它们也是可迭代的,不过在实际编程中很少这样做
- 生成器(generator),这是一种特殊的迭代器,它实现了迭代器协议,但每次迭代时按需生成值
- 以及其他实现了__iter__()方法的自定义对象
使用步骤
示例
代码如下(示例):
class Count:
"""一个简单的计数器,实现可迭代协议"""
def __init__(self, low, high):
self.current = low
self.high = high
def __iter__(self):
"""返回迭代器对象本身,这里直接返回self"""
return self
def __next__(self):
"""返回下一个值,并在到达上限时停止"""
if self.current > self.high:
raise StopIteration
else:
self.current += 1
return self.current - 1
# 使用
for i in Count(3, 8):
print(i)
三、break与continue是什么?
break 和 continue 是两种在循环结构(如 for 循环、while 循环、do-while 循环)中常用的控制流语句,它们用于改变循环的正常执行流程。尽管它们的作用有些相似,但在用途和效果上有所不同。
使用步骤
1.Python中break的作用
break 语句用于立即退出它所在的循环(无论是 for、while 还是 do-while 循环),并继续执行循环之后的代码(如果有的话)。break 通常用于在满足特定条件时提前终止循环。
代码如下(示例):
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 当 i 等于 5 时,退出循环
}
System.out.println(i);
}
// 输出:0 1 2 3 4
2.Python中continue的作用
continue 语句用于跳过当前循环的剩余部分,并立即开始下一次循环的迭代(如果循环条件仍然为真)。continue 通常用于在满足特定条件时忽略循环的当前迭代。
代码如下(示例):
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 如果 i 是偶数,则跳过当前迭代
}
System.out.println(i);
}
// 输出:1 3 5 7 9
三、for与else与循环嵌套是什么?
在Python中,for循环可以嵌套使用,即一个for循环内部可以包含另一个或多个for循环。此外,Python还允许在for循环后使用else语句,但这里的else语句与传统意义上的条件判断中的else有所不同。在for循环中使用else时,else块会在循环正常结束时执行,即循环不是因为break语句而提前退出的。
使用步骤
1.嵌套循环
嵌套循环允许你遍历多个数据结构,如列表的列表(二维列表)、字典的列表等。下面是一个简单的嵌套循环示例,用于遍历一个二维列表(列表的列表):
代码如下(示例):
# 假设我们有一个二维列表
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 使用嵌套循环遍历这个二维列表
for row in matrix:
for item in row:
print(item, end=' ')
print() # 换行,以便于区分不同的行
# 输出:
# 1 2 3
# 4 5 6
# 7 8 9
2.for循环与else
在for循环中使用else时,如果循环正常结束(即没有遇到break语句),则会执行else块中的代码。这可以用于检查循环是否因为某些条件而提前退出,或者仅仅是为了在循环正常完成后执行一些清理工作。
代码如下(示例):
# 查找列表中是否包含数字5
numbers = [1, 2, 3, 4, 5, 6]
found = False
for number in numbers:
if number == 5:
print("找到了数字5")
found = True
break # 找到了,提前退出循环
else:
if not found:
print("没有找到数字5")
# 输出:找到了数字5
# 注意,如果没有找到数字5,并且没有使用break语句,else块会执行
总结
Iterable(可迭代类型)是Python中一个非常重要的概念,它允许你使用for循环来遍历对象中的元素。几乎所有内置的容器类型都是可迭代的,同时你也可以通过实现__iter__()方法来创建自定义的可迭代对象。