# 定義計算階乘的迭代器
class Factorial:
# 設定實體屬性
def __init__(self, number):
# 設定迭代器的最大數量
self.number = int(number)
# 累計迭代器的數量
self.count = 1
# 迭代器初始化並且回傳迭代器本身
def __iter__(self):
# 迭代器初始化
self.n = 1
# 回傳迭代器本身
return self
# 回傳迭代器的下一個物件
def __next__(self):
# 計算下一個迭代器物件
if self.count <= self.number:
# 計算階乘
self.n = self.n * self.count
# 計數遞增以符合結束條件
self.count += 1
# 回傳 10 的次方值
return self.n
else:
# 超出迭代器範圍
raise StopIteration
# 使用者輸入
n1 = input("請輸入整數:")
# 建立
n = Factorial(n1)
# 印出階乘中的所有數字
for i in n:
print(i)
# 檔名: exercise1409.py
# 說明:《Python入門指南》的練習
# 網站: http://kaiching.org
# 作者: 張凱慶
# 時間: 2023 年 9 月