当我运行此代码来计算根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.我会很感激任何建议.
这条线
a=b,b=c
Run Code Online (Sandbox Code Playgroud)
解压缩元组c中b和b,所以才有了第二个INT保存在b.在下一个循环步骤中,您尝试调用sum此int.
你的意思是
a, b = b, c
Run Code Online (Sandbox Code Playgroud)