生成了一个函数,但它忽略了我可选的True/False语句



所以,我只是制作了一个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)

最新更新