打印具有一定长度的第一个斐波那契数

时间:2019-12-09 04:29:38

标签: python python-3.x user-input fibonacci

所以我基本上只是想弄清楚如何使该程序打印出第一个斐波纳契数,其长度与用户输入的数字相同。斐波那契计数部分工作正常,我只是在努力了解如何打印出正确对应的数字。在理解为什么这行代码时遇到问题:

someMethod () {
     //GET request or whatever
}

不起作用,我需要做些什么才能使其起作用。

print(str(result[user]))

1 个答案:

答案 0 :(得分:0)

让我们检查一下您遇到的问题:

print(str(result[user]))

代码在这里试图做的是访问变量user的{​​{1}}属性,将其转换为result,然后打印。它不起作用,因为变量str是一个整数,并且没有任何可以使用方括号访问的内容。

可能您要做的是打印result变量的长度。可以通过使用resultresult转换为字符串,并使用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