Python3循环语句


通常,语句是按顺序执行的:函数中的第一个语句首先执行,然后是第二个,依此类推。在某些情况下,你需要多次执行一个代码块。

编程语言提供了各种控制结构,允许使用更复杂的执行路径。

循环语句使我们可以多次执行一个语句或一组语句。下图说明了循环语句:

1620205951456055.jpg

Python编程语言提供了以下类型的循环来处理循环需求。

序号循环类型和说明
1while循环

在给定条件为TRUE时重复一个语句或一组语句。它在执行循环体之前测试条件。

2for 循环

多次执行一个语句序列,并简化管理循环变量的代码。

3嵌套循环

你可以同时使用一个或多个循环,也可以使用for循环。

循环控制语句


循环控制语句从其正常顺序更改执行。当执行离开作用域时,在该作用域中创建的所有自动对象都将被销毁。

Python支持以下控制语句。

序号控制声明和说明
1break语句

终止循环语句,并在循环之后立即将执行转移到该语句。

2continue语句

使循环跳过其其余部分,并在重新进行迭代之前立即重新测试其状况。

3pass语句

在语法上需要语句但你不希望执行任何命令或代码时,使用Python中的pass语句。

让我们简要地介绍一下循环控制语句。

迭代器和生成器


迭代器(Iterator)是一个对象,程序员可以使用该对象遍历集合的所有元素,而不论其具体实现如何。在Python中,迭代器对象实现两种方法,iter()andnext().

可以使用字符串、列表或元组对象来创建一个迭代器。

list = [1,2,3,4]
it = iter(list) # this builds an iterator object
print (next(it)) #prints next available element in iterator
Iterator object can be traversed using regular for statement
!usr/bin/python3
for x in it:
    print (x, end=" ")
or using next() function
while True:
    try:
        print (next(it))
    except StopIteration:
        sys.exit() #you have to import sys module for this

生成器(generator)是使用yield方法产生或产生值序列的函数。

调用生成器函数时,即使没有开始执行该函数,它也将返回生成器对象。首次调用next()方法时,该函数开始执行直到到达yield语句,该语句返回yield值。收益保持跟踪,即记住上一次执行,第二个next()调用从上一个值继续。

以下示例定义了一个生成器,该生成器为所有斐波那契数生成一个迭代器。

#!usr/bin/python3

import sys
def fibonacci(n): #generator function
    a, b, counter = 0, 1, 0
    while True:
        if (counter > n):
            return
        yield a
        a, b = b, a + b
        counter += 1
f = fibonacci(5) #f is iterator object

while True:
    try:
        print (next(f), end=" ")
    except StopIteration:
        sys.exit()