見出し画像

≮Python≯ 0 から 9 までを 2乗して合計するプログラムあれこれ

Python の 0 から 9 までを 2乗して合計するプログラムあれこれです。

※ パターン4とパターン5のジェネレータ式は、Pythonチュートリアル第3版から引用しています。


# 0 から 9 までを 2乗して合計するプログラムあれこれ


# パターン1 基本型

s = 0
for i in range(10):
   s += i * i

print ('パターン1', s)


# パターン2 クラスベースの反復子を使用

class C:
  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
      self.no += 1
      return ret

s = 0
for i in C(10):
  s += i

print ('パターン2', s)
 

# パターン3 ジェネレータを使用

def G(stop):
  no = 0
  while no < stop:
      yield no * no
      no += 1  

s = 0
for i in G(10):
  s += i

print ('パターン3', s)


# パターン4 ジェネレータ式を使用(for)

s = 0
for ii in (i * i for i in range(10)):
  s += ii

print ('パターン4', s)


# パターン5 ジェネレータ式を使用(sum)

print ('パターン5', sum(i * i for i in range(10)))


実行結果

パターン1 285
パターン2 285
パターン3 285
パターン4 285
パターン5 285



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