qq_采蘑菇的小兔子_0
2017-09-11 20:56
class Fib(object):
def __init__(self, num):
a, b, L = 0, 1, []
for n in range(num):
L.append(a)
a, b = b, a + b
self.numbers = L
def __str__(self):
return str(self.numbers)
__repr__ = __str__
def __len__(self):
return len(self.numbers)
f = Fib(10)
print f
print len(f)
不对吧,变量$P的值应该是字符串PI1,而不是3.14吧,“PI1”上面有双引号,$p=quot;PI1quot;;
__init__ 初始化生成斐波那契数列L,传入num是其长度,range(num)就是num次循环;斐波那契数列是以0, 1开头的,后一位为前两位之和,所以初始化前两位为a,b = 0, 1 所以第三位就是a+b,将第一位a存入列表L,第一次循环生成第三位,一二位往后挪一位,所以a=b, b=a+b;循环完毕,列表生成完毕。
__str__ 用函数str()将列表转换成string,并返回
__len__ 函数len(),返回列表L长度
python进阶
255730 学习 · 2946 问题