在Python中,for
循环专门用来遍历序列(列表、元组、集合、字典或字符串等),并在序列的每个元素上执行某些操作。与其他语言的for
循环不太一样,Python的for
更像是“迭代器”,无需事先指定索引值。
1. 基本for循环语法
如果你想逐个查看列表中的每个元素,可以直接:
fruits = ["pingguo", "xiangjiao", "yingtao"]
for x in fruits:
print(x)
上面会依次输出:pingguo
、xiangjiao
、yingtao
。
2. 字符串也是可迭代对象
字符串在Python里也被视作一个序列,每次迭代一个字符:
for ch in "xiangjiao":
print(ch)
会分别输出“x”、“i”、“a”...直到字符串结束。
3. break语句:提前结束循环
如果希望在遍历过程中满足某条件时立刻停止,可用break
:
fruits = ["pingguo", "xiangjiao", "yingtao"]
for x in fruits:
print(x)
if x == "xiangjiao":
break
它会在x
等于“xiangjiao”后停止,后面的yingtao
不会再输出。
3.1 break放在print之前
fruits = ["pingguo", "xiangjiao", "yingtao"]
for x in fruits:
if x == "xiangjiao":
break
print(x)
上面这种写法遇到“xiangjiao”就立即停止循环,也就不会打印“xiangjiao”。只会输出“pingguo”。
4. continue语句:跳过当前这次循环
如果只想跳过当前这次循环,不结束整个循环,可用continue
:
fruits = ["pingguo", "xiangjiao", "yingtao"]
for x in fruits:
if x == "xiangjiao":
continue
print(x)
这样,xiangjiao
就会被跳过,最终只输出“pingguo”和“yingtao”。
5. 使用range()函数遍历指定次数
有时你想循环一定次数而不关心具体序列,可以用range()
函数:
for x in range(6):
print(x)
上面从x=0
到x=5
,不包括6。若需要从某个数起始,可以指定起始和结束:
for x in range(2, 6):
print(x)
# 输出 2, 3, 4, 5
再加一个第三参数则可指定步长:
for x in range(2, 30, 3):
print(x)
# 以3为步长
6. for循环的else子句
在for循环后面可以跟一个else
,当for循环不被break
打断,正常结束时会执行else
中的代码:
for x in range(6):
print(x)
else:
print("循环结束")
若循环遇到break
提前退出,则else
不会执行。
6.1 例子:循环被break打断
for x in range(6):
if x == 3:
break
print(x)
else:
print("不会执行这句话,因为被break打断")
7. 嵌套循环(Nested Loops)
可以在for循环内部再写一个for循环:
adj = ["hongse", "daxing", "haochi"]
fruits = ["pingguo", "xiangjiao", "yingtao"]
for x in adj:
for y in fruits:
print(x, y)
这里外层循环每次拿一个形容词,内层循环会遍历所有水果,打印出各种组合。
8. pass语句
如果你想定义一个for循环,但里面暂时没想好要写什么,可用pass
占位,避免语法报错:
for x in [0, 1, 2]:
pass
总结
- for in:遍历列表、元组、集合、字典或字符串,依次访问序列中的元素。
- range():循环一定次数,支持自定义起始、结束和步长。
- break / continue:控制循环流程,提前终止或跳过当前迭代。
- else子句:for正常结束才会执行,若中途break则跳过。
- 嵌套for:在外层for里再写一个for,可实现多维度迭代。
- pass:占位用,避免语法错误。
当你掌握了Python的for
循环,加上range()
、break
、continue
等功能,就能更灵活地处理各类迭代任务,提高编程效率。