Python 3 循环
Python 3 循环
一般来说,语句是按顺序执行的:首先执行函数中的第一行代码,然后执行第二行代码,依此类推。可能会出现这种情况,您需要多次执行同一代码块,那么你就需要用到循环语句。
编程语言提供了各种控制结构,允许更复杂的执行路径。
循环语句允许我们多次执行一个语句或一组语句。下图说明了一个循环语句:
Python 3提供了以下类型的循环来处理循环需求。
while循环:当指定条件为TRUE时,重复执行语句或语句组。它在执行循环体之前测试条件。
for循环:多次执行语句序列,并缩写管理循环变量的代码。
嵌套循环:你可以在while 或者 for循环内使用另外的循环语句
循环控制语句
循环控制语句改变了正常顺序的执行。当执行离开范围时,在该范围内创建的所有自动对象都将被销毁。
Python支持以下控制语句。
break:终止循环语句,并将执行转移到紧接在循环之后的语句。
continue:导致循环跳过其主体的其余部分,并在重复之前立即重新测试其状况。
pass :使用pass语句时,需要在一份声明中使用,但又不希望执行任何命令或代码
迭代器和生成器
迭代器是一个对象,它允许程序员遍历集合的所有元素,而不管它的具体实现。在Python中,迭代器对象实现两种方法: iter()和next()。
字符串、列表或元组对象都可用于创建迭代器。
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
生成器是一个使用yield方法产生一个或一系列值的函数。
调用生成器函数时,它会返回生成器对象,甚至不会开始执行该函数。当第一次调用next() 方法时,函数开始执行,直到它到达yield语句,返回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()