Python循环对象

Python循环对象

Python循环对象

Python循环对象

  Python 编程提供了两种循环,for 循环 和while 循环。将这些循环与诸如 break 和 continue 之类的循环控制语句一起使用,开发有关可迭代对象和迭代器的知识的核心是了解 Python for 循环的工作原理。Python 编程语言提供了三种执行循环的方式来处理循环需求。

什么是循环对象

  循环对象是这样一个对象,它包含有一个next()方法(__next__()方法,在python 3x中), 这个方法的目的是进行到下一个结果,而在结束一系列结果之后,举出StopIteration错误。当一个循环结构(比如for)调用循环对象时,它就会每次循环的时候调用next()方法,直到StopIteration出现,for循环接收到,就知道循环已经结束,停止调用next()。

marks = [65, 71, 68, 74, 61]

# convert list to iterator
iterator_marks = iter(marks)

# the next element is the first element
marks_1 = next(iterator_marks)
print(marks_1)

# find the next element which is the second element
marks_2 = next(iterator_marks)
print(marks_2)

输出

# Output: 65
#         71

迭代器

Python迭代器

  迭代器是可以迭代的对象。迭代器在 Python 中无处不在。它们在for循环、理解、生成器等中优雅地实现,但隐藏在显眼的地方。Python 中的迭代器只是一个可以迭代的对象。一个将返回数据的对象,一次一个元素。可参考Python条件控制

  从技术上讲,一个 Python迭代器对象必须实现两个特殊的方法,iter()和next(),统称为迭代器协议。如果我们可以从中获取迭代器,则该对象称为可迭代对象。Python 中的大多数内置容器,如:list、tuple、string等都是可迭代的。

示例:

class PrintNumber:
    def __init__(self, max):
        self.max = max

    def __iter__(self):
        self.num = 0
        return self

    def __next__(self):
        if(self.num >= self.max):
            raise StopIteration
        self.num += 1
        return self.num

print_num = PrintNumber(3)

print_num_iter = iter(print_num)
print(next(print_num_iter))  # 1
print(next(print_num_iter))  # 2
print(next(print_num_iter))  # 3

# raises StopIteration
print(next(print_num_iter))

生成器

Python生成器

  Python生成器是一种创建迭代器的简单方法。我们上面提到的所有工作都是由Python中的生成器自动处理的。简单地说,生成器是一个函数,它返回一个我们可以迭代的对象(迭代器)(一次一个值)。

  在Python中创建生成器相当简单。它就像定义一个普通的函数一样简单,但是用一个yield语句而不是一个return语句。如果一个函数包含至少一个yield语句(它可能包含其他yield或多个return语句),它就成为一个生成器函数。双方yield并return会从一个函数返回一定的价值。不同之处在于,当return语句完全终止函数时,yield语句会暂停函数以保存其所有状态,然后在连续调用时从那里继续。

示例:

# A simple generator function
def my_gen():
    n = 1
    print('This is printed first')
    # Generator function contains yield statements
    yield n

    n += 1
    print('This is printed second')
    yield n

    n += 1
    print('This is printed at last')
    yield n


# Using for loop
for item in my_gen():
    print(item)

总结

  以上是晓得博客为你介绍的Python循环对象的全部内容,通过了解迭代器,生成器,可以更深入的理解Python内置函数的循环原理,更好的理解编程。

  推荐:零基础如何开始学习Python

给文章评分

晓得博客,版权所有丨如未注明,均为原创
晓得博客 » Python循环对象

转载请保留链接:https://www.pythonthree.com/python-loop-object/

ThemeForest 模板套件
可视化创建WordPress网站

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注


Scroll to Top