Python3循环语句
通常,语句是按顺序执行的:函数中的第一个语句首先执行,然后是第二个,依此类推。在某些情况下,你需要多次执行一个代码块。
编程语言提供了各种控制结构,允许使用更复杂的执行路径。
循环语句使我们可以多次执行一个语句或一组语句。下图说明了循环语句:
Python编程语言提供了以下类型的循环来处理循环需求。
序号 | 循环类型和说明 |
---|---|
1 | while循环 在给定条件为TRUE时重复一个语句或一组语句。它在执行循环体之前测试条件。 |
2 | for 循环 多次执行一个语句序列,并简化管理循环变量的代码。 |
3 | 嵌套循环 你可以同时使用一个或多个循环,也可以使用for循环。 |
循环控制语句
循环控制语句从其正常顺序更改执行。当执行离开作用域时,在该作用域中创建的所有自动对象都将被销毁。
Python支持以下控制语句。
序号 | 控制声明和说明 |
---|---|
1 | break语句 终止循环语句,并在循环之后立即将执行转移到该语句。 |
2 | continue语句 使循环跳过其其余部分,并在重新进行迭代之前立即重新测试其状况。 |
3 | pass语句 在语法上需要语句但你不希望执行任何命令或代码时,使用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()