Python for循环语句

Python中的for语句能够遍历任何序列的项目,例如列表或字符串。

语法

for iterating_var in sequence:
    statements(s)

如果序列包含表达式列表,则首先进行评估求值。 然后,序列中的第一个项目被分配给迭代变量iterating_var。 接下来,执行语句块(statement(s))。列表中的每个项目都分配给iterating_var,并且执行语句块,直到整个序列耗尽完成。

流程图

range()函数

内置的函数range()是对一系列数字进行迭代的函数。它生成一个算术进化的迭代器。

示例

>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]

示例

range()生成一个迭代器,以处理0n-1的整数。要获取序列的列表对象,可将其列为list()。现在可以使用for语句迭代此列表。

>>> for var in list(range(5)):
   print (var)

上面示例代码将产生以下输出 -

0
1
2
3
4

示例

#!/usr/bin/python3

for letter in 'Python':     # traversal of a string sequence
    print ('Current Letter :', letter)
print()
fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # traversal of List sequence
    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 ('the list contains an even number')
        break
else:
    print ('the list doesnot contain even number')

当执行上述代码时,会产生以下结果 -

the list does not contain even number

上一篇: Python循环 下一篇: Python数字