所以我基本上只是想弄清楚如何使该程序打印出第一个斐波纳契数,其长度与用户输入的数字相同。斐波那契计数部分工作正常,我只是在努力了解如何打印出正确对应的数字。在理解为什么这行代码时遇到问题:
someMethod () {
//GET request or whatever
}
不起作用,我需要做些什么才能使其起作用。
print(str(result[user]))
答案 0 :(得分:0)
让我们检查一下您遇到的问题:
print(str(result[user]))
代码在这里试图做的是访问变量user
的{{1}}属性,将其转换为result
,然后打印。它不起作用,因为变量str
是一个整数,并且没有任何可以使用方括号访问的内容。
可能您要做的是打印result
变量的长度。可以通过使用result
将result
转换为字符串,并使用str
找到其长度来实现。
len
这与上一行print(len(str(result)))
结合在一起,将打印出斐波那契数字以及数字的长度(以数字为单位)。
例如:
print(result)
这不是我们想要的-我们希望函数返回第一个斐波纳契数,该数具有用户输入的位数。为此,我们需要将1
1
2
1
3
1
5
1
8
1
13
2
...
条件修改为以下内容:
while
因此,我们检查while len(str(result)) < user:
的长度是否小于用户要求的长度,如果不是,则计算下一个斐波那契数。如果是的话,我们就会退出while循环,并且我们可以返回result
。现在我们也可以删除打印语句。
剩下要做的最后一件事是将result
函数与input
进行包装,以将用户输入的数字转换为整数,因此我们可以将其与int
的长度进行比较
我们的最终程序如下:
代码:
result
输出:
def fibonacci():
previous_num, result = 0, 1
user = int(input('please enter the length of the fibonacci number you would like to see: '))
while len(str(result)) < user:
previous_num, result = result, previous_num + result
return result
print(fibonacci())
或者::@ Sadap评论
please enter the length of the fibonacci number you would like to see: 10
1134903170