Python for 循环

循环在编程中用于重复执行特定的代码块。在本文中,您将学习使用 for 循环迭代序列、集合、字典和字符串。

循环在编程中用于重复执行特定的代码块。在本文中,您将学习使用 for 循环迭代序列、集合、字典和字符串。

Python 种的循环语句除了 for 循环 还有一个 while 循环

Python for 循环

Python for 循环被用于遍历一个序列/集合(列表元组字典集合,或字符串)或者其他可迭代对象。

Python for 循环不像其他编程语言中的 for 语法,而更像是其他面向对象编程语言中的迭代器方法。

打印水果列表中的每个水果:

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  print(x)

输出:

apple
banana
cherry

遍历字符串

字符串是可迭代对象,它是字符的序列。

循环遍历单词 “banana” 中的字母:

for x in "banana":
  print(x)

输出:

b
a
n
a
n
a

break 声明

使用 break 语句,可以在某个适当的时机跳出和中断循环。

x 是 “banana” 时退出循环:

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  print(x)
  if x == "banana":
    break

输出:

apple
banana

x 是“banana”时退出循环,但这次中断出现在打印之前:

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  if x == "banana":
    break
  print(x)

输出:

apple

continue 声明

使用 continue 语句可以停止循环的当前迭代,直接进入下一个迭代。

不要打印香蕉:

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  if x == "banana":
    continue
  print(x)

输出:

apple
cherry

range() 函数

我们可以使用 range() 函数生成一个数字序列。range(10) 将生成从 09(10 个数字)的数字序列。

我们还可以使用 range(start, stop,step_size) 定义开始数字、停止数字和步长。如果未提供,则 step_size 默认为 1。

range() 函数不会将序列中所有值存储在内存中,因为这很低效。它会记住开始数字、停止数字和步长,并在过程中生成下一个数字。

我们可以使用 list() 构造函数将 rang() 转为列表,从而生成所有的值。

print(range(6))       # range(0, 6)
print(list(range(6))) # [0, 1, 2, 3, 4, 5]

print(range(1, 6, 2))       # range(1, 6, 2)
print(list(range(1, 6, 2))) # [1, 3, 5]

输出 range() 的值:

for x in range(6):
  print(x)

输出:

0
1
2
3
4
5

!! 注意 range(6) 不是 06 的值,而是 05 的值。

for x in range(1, 6, 2):
  print(x)

输出:

1
3
5

for 循环与 else

for 循环可以搭配一个可选的 else 语句,当循环中所有项目都遍历完成后,就执行 else 语句。如果 for 循环中途被 break 退出,则不会执行 else 语句。

打印从 0 到 5 的所有数字,并在循环结束时打印一条消息:

for x in range(6):
  print(x)
else:
  print("Finally finished!")

输出:

0
1
2
3
4
5
Finally finished!

如果循环被 break 语句停止,则不会执行 else 语句。

for x in range(6):
  if x == 3: break
  print(x)
else:
  print("Finally finished!")

输出:

0
1
2

嵌套循环

有时候为了实现更复杂的逻辑,需要在循环内部再嵌套另外一个循环。“内循环” 在 “外循环” 的每次迭代中都会循环一遍。

为每种水果添加所有的形容词:

adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]

for x in adj:
  for y in fruits:
    print(x, y)

输出:

red apple
red banana
red cherry
big apple
big banana
big cherry
tasty apple
tasty banana
tasty cherry

pass 语句

for 循环不能为空,但如果由于某种原因有一个没有内容的 for 循环,请放入 pass 语句以避免出错。

for x in [0, 1, 2]:
  pass