Python 3.5,斐波数列, a,b = 0,1
怪我咯
怪我咯 2017-04-18 10:25:31
0
2
631

class Fib(object):

def __getitem__(self, n):
    a, b = 0, 1
    for x in range(n):
        a, b = b, a + b
    return a
    

f = Fib()
f[0] = 0

不解为什么是f[0] = 0

函数是不是直接执行Return 再回到循环体?

初学者还有很多不懂,请多指教,谢谢

怪我咯
怪我咯

走同样的路,发现不同的人生

répondre à tous(2)
迷茫

Lors de l'utilisation de l'opérateur de valeur d'indice [], le programme accédera à la fonction __getitem__ de l'objet.

f[0] est équivalent à f.__getitem__(self, 0), n reçoit la valeur 0

a = 0, b = 1
for x in range(0):   # 这里range(0) 直接跳过
    a, b = b, a + b
return a             # a = 0

Alors f[0] = 0.

Je ne sais pas ce qui se passe, alors je le débogue étape par étape et vérifie la documentation.

Peter_Zhu

f[0], c'est-à-dire n = 0

for x in range(n):
    a, b = b, a + b

Le corps de la boucle revient directement, donc a n'a pas changé et est toujours 0.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!