所以,我只是制作了一个fibonacci函数来返回序列和变体的打印版本,但它似乎忽略了"if"语句,并跳到了"否则";。对这里可能发生的事情一无所知。。。
def fibonacci(r, var=False):
if var is True:
n1 = 0
n2 = 1
for c in range(0, r):
n3 = n1 + n2
v = n3 / n2
n1 = n2
n2 = n3
print(f'{v}', end=' ')
else:
n1 = -1
n2 = 1
for c in range(0, r):
n3 = n1 + n2
n1 = n2
n2 = n3
print(f'{n3}', end=' ')
fibonacci((20, True))
这样称呼它:
fibonacci(20, True)
然后它就会起作用。否则,您将向函数提供一个元组作为参数。
您正在传递一个元组。尝试呼叫:斐波那契(20,真(
而不是调用:斐波那契((20,真((
看起来函数内容超出了范围。尝试缩进函数体,使其成为函数范围的一部分,如下所示:
def fibonacci(r, var=False):
if var is True:
n1 = 0
n2 = 1
for c in range(0, r):
n3 = n1 + n2
v = n3 / n2
n1 = n2
n2 = n3
print(f'{v}', end=' ')
else:
n1 = -1
n2 = 1
for c in range(0, r):
n3 = n1 + n2
n1 = n2
n2 = n3
print(f'{n3}', end=' ')
Annnnnd。。。您正在使用元组调用函数,元组被识别为一个值。尝试删除一个括号实例。像这样:
fibonacci(20, True)