Python for 循环
Python for loop 教程 展示了如何使用for
语句在 Python 中创建循环。
Python 循环定义
循环是连续重复的指令序列,直到达到特定条件为止。 例如,我们有一个项目集合,我们创建了一个循环以遍历该集合的所有元素。 可以使用for
或while
语句创建 Python 中的循环。
Python 语句
Python for
语句按照它们在序列中出现的顺序遍历任何序列的项(例如列表或字符串)。
| for var in sequence:
do_statement(s)
|
上面是 Python for
语句的一般语法。
Python 的字符串循环
以下示例使用 Python for
语句遍历字符串。
for_loop_string.py
| #!/usr/bin/python3
word = "cloud"
for let in word:
print(let)
|
我们定义了一个字符串。 通过for
循环,我们将单词的字母一一打印到终端。
| $ ./for_loop_string.py
c
l
o
u
d
|
这是示例的输出。
Python for
循环的else
for
循环具有可选的else
语句,该语句在循环完成时执行。
for_loop_else.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
关键字之后的主体中。
| $ ./for_loop_else.py
cup
star
monkey
bottle
paper
door
Finished looping
|
这是示例的输出。
Python 的范围循环
Python range()
函数生成一个数字列表。
该函数生成数字 0 … n-1。
| range(start, stop, [step])
|
该函数生成一个数字序列; 它以start
开头,以stop
结束,该序列中未包含该字符。 step
是增量,如果未提供,则默认为 1。
借助range()
功能,我们可以将代码块重复 n 次。
repeating_statement.py
| #!/usr/bin/python3
for i in range(1, 6):
print("Statement executed {0}".format(i))
|
该代码示例执行该代码块五次。
| $ ./repeating_statement.py
Statement executed 1
Statement executed 2
Statement executed 3
Statement executed 4
Statement executed 5
|
这是输出。
在下一个示例中,我们使用for
循环生成两个整数序列。
for_loop_range.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。
| $ ./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
| #!/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()
|
该代码示例输出一个元组和一个列表的元素。
| $ ./for_loop_tuple_list.py
1 2 3 4 5 6
cup star monkey bottle
|
这是输出。
Python 索引循环
有时我们也需要获取元素的索引。 为此,我们可以使用enumerate()
功能。
for_loop_index.py
| #!/usr/bin/python3
words = ("cup", "star", "monkey", "bottle", "paper", "door")
for idx, word in enumerate(words):
print("{0}: {1}".format(idx, word))
|
借助enumerate()
函数,我们将打印列表元素及其索引。
| $ ./for_loop_index.py
0: cup
1: star
2: monkey
3: bottle
4: paper
5: door
|
Python 遍历字典
在以下示例中,我们遍历了 Python 字典。
for_loop_dictionary.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 字典的键和值。
| $ ./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
| #!/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
循环遍历元素。
| $ ./for_loop_nested.py
1 2 3
4 5 6
7 8 9
|
这是输出。
Python for
循环的zip
zip()
函数根据给定的可迭代对象创建一个迭代器。
for_loop_zip.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
循环中迭代两个列表。
| $ ./for_loop_zip.py
cup trousers
bottle nail
table head
rock water
apple pen
|
这是输出。
Python 循环自定义可迭代对象
在下一个示例中,我们遍历了一个自定义迭代器。
for_loop_custom_iterable.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
循环,我们生成五个随机整数。
| $ ./for_loop_custom_iterable.py
14
43
53
44
70
|
这是一个示例输出。
Python for
循环break
break
语句终止for
循环。
for_loop_break.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 生成并打印 randon 数。 如果生成的数字等于 22,则for
循环以break
关键字结束。
| $ ./for_loop_break.py
7
27
2
27
7
9
3
25
15
22
|
这是一个示例输出。
Python 循环continue
continue
关键字用于中断当前循环,而不会跳出整个循环。 它启动一个新的循环。
for_loop_continue.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 而没有余数。