Python 3 – for循环语句
Python中的for语句具有迭代任何序列(例如列表或字符串)项的能力。
语法
for iterating_var in sequence:
statements(s)
如果序列包含表达式列表,则首先进行评估。然后,将序列中的第一项分配给迭代变量 iterating_var 。接下来,执行语句块。将列表中的每个项分配给 iterating_var ,并执行语句块,直到整个序列用尽。
流程图
range()函数
内置函数range()是迭代数字序列的正确函数。它生成算术级数的迭代器。
示例
>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]
示例
range()生成一个迭代器以接受从0开始到n-1的整数。要获取序列的列表对象,需要将其转换为list()。现在,可以使用for语句迭代此列表。
>>> for var in list(range(5)):
print (var)
输出
这将产生以下输出。
0
1
2
3
4
示例
#!/usr/bin/python3
for letter in 'Python': # 遍历字符串序列
print ('Current Letter :', letter)
print()
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 遍历列表序列
print ('Current fruit :', fruit)
print ("Good bye!")
输出
运行上述代码时,将产生以下结果。
Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n
Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!
通过序列索引进行迭代
通过序列本身的索引偏移来迭代每个项的另一种方法是。以下是一个简单的例子—
示例
#!/usr/bin/python3
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print ('Current fruit :', fruits[index])
print ("Good bye!")
输出
运行上述代码时,将产生以下结果。
Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!
在这里,我们利用了len()内置函数的帮助,它提供了元组中的总元素数,以及range()内置函数来为我们提供实际迭代的序列。
在循环中使用else语句
Python支持将else语句与循环语句相关联。
- 如果else语句与for循环一起使用,则仅在for循环正常终止(而不是遇到break语句)时执行else块。
-
如果else语句与while循环一起使用,则当条件变为false时执行else语句。
示例
以下示例说明了else语句与for语句的组合,该语句在给定列表中搜索偶数。
#!/usr/bin/python3
numbers = [11,33,55,39,55,75,37,21,23,41,13]
for num in numbers:
if num%2 == 0:
print ('该列表包含偶数')
break
else:
print ('该列表不包含偶数')
输出
当执行以上代码时,会产生以下结果 −
该列表不包含偶数