我对编码很新,我一直在为Alex Bowers的初学者使用Python.在每一章的最后是一个实验练习,这个特别的一个是关于Fabonacci,章节本身是关于forLoops,whileLoops,Try Except和Finally,以及break和Continues.我对解决方案感到困惑,尤其是处理变量"set"的行,任何人都可以向我解释解决方案,因为他们没有在书中解释它...谢谢
f0 = 0
f1 = 1
set = False
while True:
fn = f0 + f1
f0 = f1
f1 = fn
if (fn > 100):
set = True
else:
set = False
print(fn)
if (set == True):
break
Run Code Online (Sandbox Code Playgroud)
我假设你知道Fibonacci序列是什么(如果没有,请阅读此内容).我会一次走这一步
这些是用于计算斐波纳契数列的变量. f0是序列中的第一个数字,f1是第二个.
f0 = 0
f1 = 1
Run Code Online (Sandbox Code Playgroud)
set 将用作以下循环的条件,以确定何时停止.
set = False
Run Code Online (Sandbox Code Playgroud)
这是一个无限循环.
while True:
Run Code Online (Sandbox Code Playgroud)
计算序列中的下一个数字.
fn = f0 + f1
Run Code Online (Sandbox Code Playgroud)
更新旧变量.
f0 = f1
f1 = fn
Run Code Online (Sandbox Code Playgroud)
如果您在序列中得到的数字大于100,则设置set为True.其他设置set为False(已经是).
if (fn > 100):
set = True
else:
set = False
Run Code Online (Sandbox Code Playgroud)
打印当前序列号.
print(fn)
Run Code Online (Sandbox Code Playgroud)
如果set是True,请离开无限循环.
if (set == True):
break
Run Code Online (Sandbox Code Playgroud)
注意:此代码可以轻松简化.我很惊讶它出现在书中.您可以将其简化为:
f0 = 0
f1 = 1
while True:
fn = f0 + f1
f0 = f1
f1 = fn
print(fn)
if (fn > 100):
break
Run Code Online (Sandbox Code Playgroud)