Python grammar practice
Note: If you think the blog is good, don’t forget to like and collect it. I will update the content related to artificial intelligence and big data every week. Most of the content is original, Python Java Scala SQL code, CV NLP recommendation system, etc., Spark Flink Kafka, Hbase, Hive, Flume, etc. are all pure dry goods, and the interpretation of various top conference papers makes progress together.
Today I will continue to share with you some Python grammar exercises_Iterator 2
#博学谷IT学报技术支持
Article directory
foreword
Iterator Case 2_Custom range function
1. Iterator case
Through this iterator case, familiarize yourself with the use of iterators
class MyRange(object):
def __init__(self, num):
self.num = num
def __iter__(self):
return MyRangeIter(self.num)
class MyRangeIter(object):
def __init__(self, stop_num):
self.stop_num = stop_num
self.index = 0
def __next__(self):
if self.index == self.stop_num:
raise StopIteration
temp = self.index
self.index += 1
return temp
if __name__ == '__main__':
for i in MyRange(10):
print(i)
2. Iterator yield method change
class MyRange(object):
def __init__(self, num):
self.num = num
def __iter__(self):
number = 0
while number < self.num:
yield number
number += 1
if __name__ == '__main__':
for i in MyRange(10):
print(i)
3. Generator
generator = iterator + iterable
# 生成器原理
# class MyGenerator(object):
#
# def __init__(self, stop_value):
# self.stop_value = stop_value
# self.begin = 0
#
# def __iter__(self):
# return self
#
# def __next__(self):
# temp = self.begin
# if temp >= self.stop_value:
# raise StopIteration
# self.begin += 1
# return temp
# 定义一个生成器
def my_range(stop_value):
number = 0
while number < stop_value:
yield number
number += 1
if __name__ == '__main__':
my01 = my_range(10)
for i in my01:
print(i)
Summarize
Iterator Exercise 2: Implementing the range function through iterators