見出し画像

≮Python≯ ミニrange のジェネレータ版を追加。。。


ミニrange(stopのみ)のジェネレータ版を作って追加。。。

class range_mini: # クラス版
  def __init__(self, stop):
      self.no = 0
      self.stop = stop

  def __iter__(self):
      return self

  def __next__(self):
      if self.stop <= self.no:
          raise  StopIteration

      ret = self.no
      self.no += 1
      return ret   


def range_mini2(stop): # ジェネレータ版
   no = 0
   while no < stop:
       yield no
       no += 1  
       

# クラス版でループさせる
print('class range_mini:版')
for i in range_mini(5):
   print(i)

# ジェネレータ版でループさせる
print('def range_mini2(stop):版')
for i in range_mini2(10):
   print(i)


実行結果

class range_mini:0
1
2
3
4
def range_mini2(stop):0
1
2
3
4
5
6
7
8
9



#Chromebook 上の #Linux#Python #Python3 #プログラミング を勉強中 !
#反復子 #iterator
#ジェネレータ #yield