Python - Project Euler#57,理解错误

ggo*_*don 0 python iteration

当我运行此代码来计算根2连续分数的收敛:

def root_two_expansion():
    total=0
    a=(3,2)
    b=(7,5)
    x=3
    while x<=1000:
        c=((sum(a)+sum(b)),sum(b))
        if len(str(c[0]))>len(str(c[1])):
            total+=1
        a=b,b=c
        x+=1
    return total

print root_two_expansion()
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

069.506.py",第7行,在root_two_expansion中c =((sum(a)+ sum(b)),sum(b))TypeError:'int'对象不可迭代

为什么是这样?我不明白代码在哪个阶段尝试迭代int.我会很感激任何建议.

Dan*_*iel 5

这条线

a=b,b=c
Run Code Online (Sandbox Code Playgroud)

解压缩元组cbb,所以才有了第二个INT保存在b.在下一个循环步骤中,您尝试调用sum此int.

你的意思是

a, b = b, c
Run Code Online (Sandbox Code Playgroud)