原文: http://zetcode.com/python/forloop/

Python for循环教程展示了如何使用for语句在 Python 中创建循环。

Python 循环定义

循环是连续重复的指令序列,直到达到特定条件为止。 例如,我们有一个项目集合,我们创建了一个循环以遍历该集合的所有元素。 可以使用forwhile语句创建 Python 中的循环。

Python 语句

Python for语句按照它们在序列中出现的顺序遍历任何序列的项(例如列表或字符串)。

  1. for var in sequence:
  2. do_statement(s)

上面是 Python for语句的一般语法。

Python 的字符串循环

以下示例使用 Python for语句遍历字符串。

for_loop_string.py

  1. #!/usr/bin/python3
  2. word = "cloud"
  3. for let in word:
  4. print(let)

我们定义了一个字符串。 通过for循环,我们将单词的字母一一打印到终端。

  1. $ ./for_loop_string.py
  2. c
  3. l
  4. o
  5. u
  6. d

这是示例的输出。

Python for循环的else

for循环具有可选的else语句,该语句在循环完成时执行。

for_loop_else.py

  1. #!/usr/bin/python3
  2. words = ["cup", "star", "monkey", "bottle", "paper", "door"]
  3. for word in words:
  4. print(word)
  5. else:
  6. print("Finished looping")

我们使用for循环遍历单词列表。 迭代结束后,我们将打印"Finished looping"消息,该消息位于else关键字之后的主体中。

  1. $ ./for_loop_else.py
  2. cup
  3. star
  4. monkey
  5. bottle
  6. paper
  7. door
  8. Finished looping

这是示例的输出。

Python 的范围循环

Python range()函数生成一个数字列表。

  1. range(n)

该函数生成数字0 ... n-1

  1. range(start, stop, [step])

该函数生成一个数字序列; 它以start开头,以stop结束,该序列中未包含该字符。 step是增量,如果未提供,则默认为 1。

借助range()函数,我们可以将代码块重复 n 次。

repeating_statement.py

  1. #!/usr/bin/python3
  2. for i in range(1, 6):
  3. print("Statement executed {0}".format(i))

该代码示例执行该代码块五次。

  1. $ ./repeating_statement.py
  2. Statement executed 1
  3. Statement executed 2
  4. Statement executed 3
  5. Statement executed 4
  6. Statement executed 5

这是输出。

在下一个示例中,我们使用for循环生成两个整数序列。

for_loop_range.py

  1. #!/usr/bin/python3
  2. for n in range(1, 11):
  3. print(n, end=' ')
  4. print()
  5. for n in range(0, 11, 2):
  6. print(n, end=' ')
  7. print()

该示例打印两个整数序列:1,2,… 10 和 0,2,… 10。

  1. $ ./for_loop_range.py
  2. 1 2 3 4 5 6 7 8 9 10
  3. 0 2 4 6 8 10

这是输出。

Python 遍历元组和列表

使用 Python for循环,我们可以轻松地遍历 Python 元组和列表。

for_loop_tuple_list.py

  1. #!/usr/bin/python3
  2. nums = (1, 2, 3, 4, 5, 6)
  3. words = ["cup", "star", "monkey", "bottle"]
  4. for n in nums:
  5. print(n, end=' ')
  6. print()
  7. for word in words:
  8. print(word, end=' ')
  9. print()

该代码示例输出一个元组和一个列表的元素。

  1. $ ./for_loop_tuple_list.py
  2. 1 2 3 4 5 6
  3. cup star monkey bottle

这是输出。

Python 索引循环

有时我们也需要获取元素的索引。 为此,我们可以使用enumerate()函数。

for_loop_index.py

  1. #!/usr/bin/python3
  2. words = ("cup", "star", "monkey", "bottle", "paper", "door")
  3. for idx, word in enumerate(words):
  4. print("{0}: {1}".format(idx, word))

借助enumerate()函数,我们将打印列表元素及其索引。

  1. $ ./for_loop_index.py
  2. 0: cup
  3. 1: star
  4. 2: monkey
  5. 3: bottle
  6. 4: paper
  7. 5: door

Python 遍历字典

在以下示例中,我们遍历了 Python 字典。

for_loop_dictionary.py

  1. #!/usr/bin/python3
  2. data = { "de": "Germany", "sk": "Slovakia", "hu": "Hungary", "ru": "Russia" }
  3. for k, v in data.items():
  4. print("{0} is an abbreviation for {1}".format(k, v))

该代码示例将打印 Python 字典的键和值。

  1. $ ./for_loop_dictionary.py
  2. sk is an abbreviation for Slovakia
  3. ru is an abbreviation for Russia
  4. hu is an abbreviation for Hungary
  5. de is an abbreviation for Germany

这是输出。

Python 嵌套循环

可以将for循环嵌套到另一个循环中。

for_loop_nested.py

  1. #!/usr/bin/python3
  2. nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  3. for i in nums:
  4. for e in i:
  5. print(e, end=' ')
  6. print()

我们有一个二维整数列表。 我们通过两个for循环遍历元素。

  1. $ ./for_loop_nested.py
  2. 1 2 3
  3. 4 5 6
  4. 7 8 9

这是输出。

Python for循环的zip

zip()函数根据给定的可迭代对象创建一个迭代器。

for_loop_zip.py

  1. #!/usr/bin/python3
  2. words1 = ["cup", "bottle", "table", "rock", "apple"]
  3. words2 = ["trousers", "nail", "head", "water", "pen"]
  4. for w1, w2 in zip(words1, words2):
  5. print(w1, w2)

在示例中,我们在一个for循环中迭代两个列表。

  1. $ ./for_loop_zip.py
  2. cup trousers
  3. bottle nail
  4. table head
  5. rock water
  6. apple pen

这是输出。

Python 循环自定义可迭代对象

在下一个示例中,我们遍历了一个自定义迭代器。

for_loop_custom_iterable.py

  1. #!/usr/bin/python3
  2. import random
  3. def myrandom(x):
  4. i = 0
  5. while i < x:
  6. r = random.randint(0, 100)
  7. yield r
  8. i = i + 1
  9. for r in myrandom(5):
  10. print(r)

该代码示例创建一个生成器函数,该函数生成随机整数。 通过for循环,我们生成五个随机整数。

  1. $ ./for_loop_custom_iterable.py
  2. 14
  3. 43
  4. 53
  5. 44
  6. 70

这是一个示例输出。

Python for循环break

break语句终止for循环。

for_loop_break.py

  1. #!/usr/bin/python3
  2. import random
  3. import itertools
  4. for i in itertools.count():
  5. val = random.randint(1, 30)
  6. print(val)
  7. if (val == 22):
  8. break

在示例中,我们创建了一个无限的for循环。 我们从1 ... 29生成并打印随机数。 如果生成的数字等于 22,则for循环以break关键字结束。

  1. $ ./for_loop_break.py
  2. 7
  3. 27
  4. 2
  5. 27
  6. 7
  7. 9
  8. 3
  9. 25
  10. 15
  11. 22

这是一个示例输出。

Python 循环continue

continue关键字用于中断当前循环,而不会跳出整个循环。 它启动一个新的循环。

for_loop_continue.py

  1. #!/usr/bin/python3
  2. num = 0
  3. for num in range(1000):
  4. num = num + 1
  5. if (num % 2) == 0:
  6. continue
  7. print(num, end=' ')
  8. print()

我们打印所有小于 1000 的数字,这些数字不能除以 2 而没有余数。

在本教程中,我们使用 Python 进行循环。

您可能也对以下相关教程感兴趣: Python 教程Python 集教程Python lambda 函数Python 列表推导Python 映射教程Python 反向教程OpenPyXL 教程Python Requests 教程Python CSV 教程