ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Python `for`循环 > 原文: [http://zetcode.com/python/forloop/](http://zetcode.com/python/forloop/) Python `for`循环教程展示了如何使用`for`语句在 Python 中创建循环。 ## Python 循环定义 循环是连续重复的指令序列,直到达到特定条件为止。 例如,我们有一个项目集合,我们创建了一个循环以遍历该集合的所有元素。 可以使用`for`或`while`语句创建 Python 中的循环。 ## Python 语句 Python `for`语句按照它们在序列中出现的顺序遍历任何序列的项(例如列表或字符串)。 ```py for var in sequence: do_statement(s) ``` 上面是 Python `for`语句的一般语法。 ## Python 的字符串循环 以下示例使用 Python `for`语句遍历字符串。 `for_loop_string.py` ```py #!/usr/bin/python3 word = "cloud" for let in word: print(let) ``` 我们定义了一个字符串。 通过`for`循环,我们将单词的字母一一打印到终端。 ```py $ ./for_loop_string.py c l o u d ``` 这是示例的输出。 ## Python `for`循环的`else` `for`循环具有可选的`else`语句,该语句在循环完成时执行。 `for_loop_else.py` ```py #!/usr/bin/python3 words = ["cup", "star", "monkey", "bottle", "paper", "door"] for word in words: print(word) else: print("Finished looping") ``` 我们使用`for`循环遍历单词列表。 迭代结束后,我们将打印`"Finished looping"`消息,该消息位于`else`关键字之后的主体中。 ```py $ ./for_loop_else.py cup star monkey bottle paper door Finished looping ``` 这是示例的输出。 ## Python 的范围循环 Python `range()`函数生成一个数字列表。 ```py range(n) ``` 该函数生成数字`0 ... n-1`。 ```py range(start, stop, [step]) ``` 该函数生成一个数字序列; 它以`start`开头,以`stop`结束,该序列中未包含该字符。 `step`是增量,如果未提供,则默认为 1。 借助`range()`函数,我们可以将代码块重复 n 次。 `repeating_statement.py` ```py #!/usr/bin/python3 for i in range(1, 6): print("Statement executed {0}".format(i)) ``` 该代码示例执行该代码块五次。 ```py $ ./repeating_statement.py Statement executed 1 Statement executed 2 Statement executed 3 Statement executed 4 Statement executed 5 ``` 这是输出。 在下一个示例中,我们使用`for`循环生成两个整数序列。 `for_loop_range.py` ```py #!/usr/bin/python3 for n in range(1, 11): print(n, end=' ') print() for n in range(0, 11, 2): print(n, end=' ') print() ``` 该示例打印两个整数序列:1,2,... 10 和 0,2,... 10。 ```py $ ./for_loop_range.py 1 2 3 4 5 6 7 8 9 10 0 2 4 6 8 10 ``` 这是输出。 ## Python 遍历元组和列表 使用 Python `for`循环,我们可以轻松地遍历 Python 元组和列表。 `for_loop_tuple_list.py` ```py #!/usr/bin/python3 nums = (1, 2, 3, 4, 5, 6) words = ["cup", "star", "monkey", "bottle"] for n in nums: print(n, end=' ') print() for word in words: print(word, end=' ') print() ``` 该代码示例输出一个元组和一个列表的元素。 ```py $ ./for_loop_tuple_list.py 1 2 3 4 5 6 cup star monkey bottle ``` 这是输出。 ## Python 索引循环 有时我们也需要获取元素的索引。 为此,我们可以使用`enumerate()`函数。 `for_loop_index.py` ```py #!/usr/bin/python3 words = ("cup", "star", "monkey", "bottle", "paper", "door") for idx, word in enumerate(words): print("{0}: {1}".format(idx, word)) ``` 借助`enumerate()`函数,我们将打印列表元素及其索引。 ```py $ ./for_loop_index.py 0: cup 1: star 2: monkey 3: bottle 4: paper 5: door ``` ## Python 遍历字典 在以下示例中,我们遍历了 Python 字典。 `for_loop_dictionary.py` ```py #!/usr/bin/python3 data = { "de": "Germany", "sk": "Slovakia", "hu": "Hungary", "ru": "Russia" } for k, v in data.items(): print("{0} is an abbreviation for {1}".format(k, v)) ``` 该代码示例将打印 Python 字典的键和值。 ```py $ ./for_loop_dictionary.py sk is an abbreviation for Slovakia ru is an abbreviation for Russia hu is an abbreviation for Hungary de is an abbreviation for Germany ``` 这是输出。 ## Python 嵌套循环 可以将`for`循环嵌套到另一个循环中。 `for_loop_nested.py` ```py #!/usr/bin/python3 nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] for i in nums: for e in i: print(e, end=' ') print() ``` 我们有一个二维整数列表。 我们通过两个`for`循环遍历元素。 ```py $ ./for_loop_nested.py 1 2 3 4 5 6 7 8 9 ``` 这是输出。 ## Python `for`循环的`zip` `zip()`函数根据给定的可迭代对象创建一个迭代器。 `for_loop_zip.py` ```py #!/usr/bin/python3 words1 = ["cup", "bottle", "table", "rock", "apple"] words2 = ["trousers", "nail", "head", "water", "pen"] for w1, w2 in zip(words1, words2): print(w1, w2) ``` 在示例中,我们在一个`for`循环中迭代两个列表。 ```py $ ./for_loop_zip.py cup trousers bottle nail table head rock water apple pen ``` 这是输出。 ## Python 循环自定义可迭代对象 在下一个示例中,我们遍历了一个自定义迭代器。 `for_loop_custom_iterable.py` ```py #!/usr/bin/python3 import random def myrandom(x): i = 0 while i < x: r = random.randint(0, 100) yield r i = i + 1 for r in myrandom(5): print(r) ``` 该代码示例创建一个生成器函数,该函数生成随机整数。 通过`for`循环,我们生成五个随机整数。 ```py $ ./for_loop_custom_iterable.py 14 43 53 44 70 ``` 这是一个示例输出。 ## Python `for`循环`break` `break`语句终止`for`循环。 `for_loop_break.py` ```py #!/usr/bin/python3 import random import itertools for i in itertools.count(): val = random.randint(1, 30) print(val) if (val == 22): break ``` 在示例中,我们创建了一个无限的`for`循环。 我们从`1 ... 29`生成并打印随机数。 如果生成的数字等于 22,则`for`循环以`break`关键字结束。 ```py $ ./for_loop_break.py 7 27 2 27 7 9 3 25 15 22 ``` 这是一个示例输出。 ## Python 循环`continue` `continue`关键字用于中断当前循环,而不会跳出整个循环。 它启动一个新的循环。 `for_loop_continue.py` ```py #!/usr/bin/python3 num = 0 for num in range(1000): num = num + 1 if (num % 2) == 0: continue print(num, end=' ') print() ``` 我们打印所有小于 1000 的数字,这些数字不能除以 2 而没有余数。 在本教程中,我们使用 Python 进行循环。 您可能也对以下相关教程感兴趣: [Python 教程](/lang/python/), [Python 集教程](/python/set/), [Python lambda 函数](/python/lambda/), [Python 列表推导](/articles/pythonlistcomprehensions/), [Python 映射教程](/python/map/), [Python 反向教程](/python/reverse/), [OpenPyXL 教程](/articles/openpyxl/), [Python Requests 教程](/web/pythonrequests/)和 [Python CSV 教程](/python/csv/)。