一、 Iterable可迭代类型
可迭代类型(iterable)是指能够遍历的对象。在Python中,可以通过for循环来遍历可迭代类型的对象。
常见的可迭代类型包括:
- 列表(list):列表是有序的可变容器,可以包含任意类型的元素,可以通过索引访问其中的元素。
- 元组(tuple):元组是有序的不可变容器,可以包含任意类型的元素,可以通过索引访问其中的元素。
- 字符串(string):字符串是不可变的字符序列,可以通过索引访问其中的字符。
- 集合(set):集合是无序的不重复元素的集合,可以对其中的元素进行迭代。
- 字典(dictionary):字典是键值对的无序集合,可以对其中的键或值进行迭代。
- range对象(range):range对象表示一个范围内的整数序列,可以对其中的整数进行迭代。
二、 for两种常见形式
第一种:使用range函数指定循环次数,代码如下:
for i in range(n):
pass
第二种:对可迭代对象进行循环遍历:
for e in 字符串:
pass
在这种形式下,for循环会遍历可迭代对象中的每个元素,将每个元素依次赋值给变量e,并执行循环体中的代码块。循环会持续执行直到遍历完所有元素。
下面是一个示例:
s1 = "a2b56dd8eg4b2c1z5"
for i in range(len(s1)):
print(i,s1[i])
三、 break与continue
1.break
break是一个关键字,用于在循环中提前结束循环。当遇到break语句时,程序会立即跳出最内层的循环,并继续执行循环之后的代码。
下面是一个使用break的示例:
s = "Hello"
for i in range(len(s)):
if s[i] == 'l':
break
print(s[i])
这个循环会遍历字符串s中的每个字符,当遇到字符'l'时,会执行break语句,跳出循环。所以只会输出前两个字符:
H
e
注意,break只会跳出最内层的循环,如果有多层嵌套循环,break只会跳出最内层的循环而不会影响外层的循环。
2.continue
continue是一个关键字,用于在循环中跳过当前迭代,进入下一次迭代。当遇到continue语句时,程序会立即停止执行当前迭代的剩余代码,并进行下一次迭代。
下面是一个使用continue的示例:
s = "Hello"
for i in range(len(s)):
if s[i] == 'l':
continue
print(s[i])
这个循环会遍历字符串s中的每个字符,当遇到字符'l'时,会执行continue语句,停止执行当前迭代的剩余代码,直接进入下一次迭代。所以会跳过所有的'l'字符,只输出其他字符:
H
e
o
注意,continue只会跳过当前迭代的剩余代码,不会跳出循环。循环会继续执行下一次迭代。
四、 for与else
在Python中,循环语句可以与else语句配合使用。当循环正常结束(即没有被break语句中断),会执行else语句中的代码。
下面是一个使用for循环和else语句的示例:
numbers = [1, 2, 3, 4, 5]
for num in numbers:
if num == 6:
print("找到了6!")
break
else:
print("没有找到6!")
在这个例子中,我们遍历一个列表numbers,如果找到元素6,就输出"找到了6!"并使用break跳出循环。如果循环正常结束(即没有找到6),则会执行else语句块中的代码,即输出"没有找到6!"。
假如将numbers中的元素改为[1, 2, 3, 4, 5, 6],则输出结果为"找到了6!",因为循环在遇到6时会被break中断,不会执行else语句。
五、 循环嵌套
循环嵌套是指在一个循环体内再嵌套另一个循环体。这种结构常用于处理多维数组、矩阵、图像等需要遍历多次的场景。
循环嵌套的基本语法是在一个循环体内使用另一个循环体,如下所示:
for (int i = 0; i < n; i++) {
// 外层循环
for (int j = 0; j < m; j++) {
// 内层循环
// 执行语句
}
}
在这个例子中,for (int i = 0; i < n; i++)
是外层循环,for (int j = 0; j < m; j++)
是内层循环。内层循环会在每次外层循环迭代时执行。