|
发表于 2018-3-21 10:03:06
|
显示全部楼层
- class Fib():
- def __init__(self):
- self.a, self.b = 0, 1 #初始化两个计数器a,b
-
- def __iter__(self):
- return self #实例本身就是迭代对象,返回自己
- def __next__(self):
- self.a, self.b = self.b, self.a + self.b
- ss = dict(zip([str(x) for x in range(11)], ['', '一', '二', '三', '四', '五',\
- '六', '七', '八', '九']))
- if self.a < 10:
- print(ss[str(self.a)])
- elif 10 <= self.a < 100:
- print(ss[str(self.a)[0]], '十 ', ss[str(self.a)[1]])
- elif self.a == 100:
- print('一百')
- elif 100 < self.a < 110:
- print(ss[str(self.a)[0]], '百零', ss[str(self.a)[2]])
- elif 110 <= self.a < 1000:
- print(ss[str(self.a)[0]], '百', ss[str(self.a)[1]], '十', ss[str(self.a)[2]])
- elif 1000 <= self.a < 1010:
- print(ss[str(self.a)[0]], '千零', ss[str(self.a)[3]])
- elif 1010 <= self.a < 1100:
- print(ss[str(self.a)[0]], '千零', ss[str(self.a)[2]], '十', ss[str(self.a)[3]])
- elif 1100 < self.a < 10000:
- print(ss[str(self.a)[0]], '千','零'*(ss[str(self.a)[1]] == 0),\
- ss[str(self.a)[2]],'百', '零'*(ss[str(self.a)[2]] == 0 and ss[str(self.a)[1]] != 0),\
- '十', ss[str(self.a)[3]])
-
- return self.a
-
- fib = Fib()
- for i in fib:
- if i > 10000:
- break
复制代码 |
评分
-
查看全部评分
|