任务
斐波那契数列是由 0, 1, 1, 2, 3, 5, 8...构成。
请编写一个Fib类,Fib(10)表示数列的前10个元素,print Fib(10) 可以打印出数列的前 10 个元素,len(Fib(10))可以正确返回数列的个数10。
参考代码:
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)
输出结果
H:\Python27\python.exe C:/Users/Tao/PycharmProjects/test/test.py
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
10
Process finished with exit code 0
其中需要注意的是,赋值运算,先计算赋值号(也就是=号右边的变量值,再赋值给=左边的变量)
那么
1
2
3
|
a, b
=
b, a
+
b
# 这种赋值,先计算等值 右边 那么 b=1 a+b=1
# 再赋值给a和b,那么 a=1, b=1
|
而,下面的
1
2
3
4
|
a
=
b
# 此时 b=1, 那么a=1
b
=
a
+
b
# 那么 b=2
|