Rumah  >  Soal Jawab  >  teks badan

Python 3.5,斐波数列, a,b = 0,1

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 再回到循环体?

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

怪我咯怪我咯2716 hari yang lalu636

membalas semua(2)saya akan balas

  • 迷茫

    迷茫2017-04-18 10:27:31

    Apabila menggunakan operator nilai subskrip [], atur cara akan mengakses fungsi __getitem__ objek.

    f[0] bersamaan dengan f.__getitem__(self, 0), n diberikan nilai 0

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

    Jadi f[0] = 0.

    Saya tidak tahu apa yang berlaku, jadi saya nyahpepijat langkah demi langkah dan menyemak dokumentasi.

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:27:31

    f[0], iaitu n = 0

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

    Isi gelung kembali terus, jadi a tidak berubah dan masih 0.

    balas
    0
  • Batalbalas