我不确定为什么它会给我这个错误...它说的部分给我的错误是previousFirst + previousSecond = previousSecond
。如果您想知道目标是打印出用户想要打印的尽可能多的fibonnaci数字。
def fibbonaci():
fibbNumber = input("How many Fibonacci numbers should I print for you?")
fibbNumber = int(fibbNumber)
global counter
counter = 0
global previousFirst
previousFirst = 0
global previousSecond
previousSecond = 1
global previousSaved
previousSaved = 1
while (counter < fibbNumber):
previousSaved = previousSecond
previousFirst + previousSecond = previousSecond
print (previousFirst)
print (previousSecond)
counter += 1
fibbonaci()
答案 0 :(得分:1)
赋值语句的左侧必须是有效名称,而不是表达式。 (+
是一个运算符,表示它包含在表达式中)
这是罪魁祸首,
previousFirst + previousSecond = previousSecond
此外,您的代码确实存在一些格式问题,即缩进对第一个函数不利。通常你可以逃避这一点,但作为Python,它是语言语法的一部分。它也可能只是您将其复制并粘贴到Stack的方式,在编辑帖子时查看How to Edit
和How to Format
栏中的提示。
答案 1 :(得分:0)
该行应为
previousSecond = previousFirst + previousSecond
这就是问题
更新:
计算fibbonaci数有一些逻辑错误,而while部分可能是:
while (counter < fibbNumber):
previousSaved = previousSecond
previousSecond = previousFirst + previousSecond
previousFirst = previousSaved
print (previousFirst)
print (previousSecond)
counter += 1
答案 2 :(得分:0)
1。你转过了作业。格式为
<i>variable</i> = <i>new value</i>
所以说:
previous_second = previous second + previous_first
2。更常规(非Python)的方法是:
next = current + previous
previous = current
current = next
其中“next”是一个临时变量,用于按顺序计算下一个。
3。 Python能够执行多个赋值,在许多其他情况下不需要临时变量。您可以通过以下方式完成上述所有操作:
current, previous = current+previous, current
右边的两个计算都是在任何分配发生之前完成的。 current的新值是当前值+ previous的旧值的总和,而previous的新值是current的旧值。把它放在“for xyz in range(n):”循环中,在初始化current = 0,previous = 1之后,你得到一个适用于所有非负n(包括0)的循环。当前的最终值是你的结果。
4。它的“Fibonacci”,而不是“Fibbonaci”,这个人的真名是莱昂纳多。