Python 3 - 循环

通常,语句按顺序执行和减去;首先执行函数中的第一个语句,然后执行第二个语句,依此类推.可能存在需要多次执行代码块的情况.

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

循环语句允许我们多次执行一个语句或一组语句.下图说明了一个循环语句 :

Loop Architecture

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

Sr.No.Loop Type&说明
1while循环

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

2for for循环

执行一系列的语句多次并缩写管理循环变量的代码.

3嵌套循环

你可以在任何其他循环中使用一个或多个循环,或者循环.

循环控制语句

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

Python支持以下控制语句.

Sr.No.控制声明&描述
1break语句

终止循环语句并将执行转移到紧跟在语句之后的语句循环.

2continue语句

导致循环跳过剩余的它的身体并在重复之前立即重新测试它的状态.

3传递声明

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

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

迭代器和生成器

迭代器是一个对象允许程序员遍历集合的所有元素,无论其具体实现如何.在Python中,迭代器对象实现两个方法, iter() next().

String,List或Tuple对象可以用于创建迭代器.

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

A 生成器是一个使用yield方法生成或产生一系列值的函数.

当调用生成器函数时,它返回一个生成器对象,甚至没有开始执行该函数.当第一次调用next()方法时,函数开始执行,直到它到达yield语句,返回产生的值. yield保持跟踪即记住上次执行,第二次next()调用从前一个值继续.

示例

以下示例定义了一个生成器,它为所有Fibonacci数生成一个迭代器.

#!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()