在一般情况下,语句是顺序执行的:在一个函数的第一条语句,首先执行,然后是第二条,第三条...等等。可能有一种情况,当你需要执行代码块几次或多数。
编程语言提供了各种控制结构,使程序执行更多复杂的路径。
循环语句可以让我们执行语句声明或组多次。下图说明了一个循环语句 -
Python编程语言提供了以下类型的循环处理的说明。
循环类型 | 描述 |
---|---|
当指定的条件为TRUE重复执行语句或组。它在执行循环体之前测试条件。 | |
执行一系列语句多次和缩写代码管理循环变量
|
|
可以使用一个或多个环在另一个 while 或者 for 或循环内
|
循环控制语句
循环控制语句改变其正常的顺序执行。当执行离开了循环范围,在该范围内创建的所有自动对象被销毁。
Python支持以下控制语句。点击以下链接查看其详细信息。
控制语句
|
描述 |
---|---|
终止循环语句并立刻转移执行循环后面的语句
|
|
跳过循环体的其余部分,并立即重申之前重新测试循环条件状态
|
|
在Python中的pass语句的使用时,需要在一份声明中使用,但又不希望执行任何命令或代码
|
我们通过循环控制语句简短地说明 -
迭代器和发生器
迭代器是一个对象,它允许程序员遍历集合的所有元素,而不管其具体的实现。在Python迭代器对象实现了两个方法: iter() 和 next()
字符串列表或元组对象可用于创建一个迭代器(Iterator)
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 函数产生或会产生yield序列值。
当一个生成器函数被调用,它返回一个生成器对象甚至不需要开始执行该函数。 当 next()方法被调用的第一次,函数开始执行,直到达到其返回值产生yield语句。yield跟踪并记住最后一次执行。第二 next()函数从上一个值继续调用。
# Following example defines a generator which generates an iterator for all the Fibonacci numbers. !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()