从输入数字打印斐波纳契

时间:2017-02-21 22:31:54

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

所以我尝试使用input数字打印Fibonacci序列。我不确定如何在我的代码中输入数字。

def fibonacci(n):
    a,b=0,1
    while(a<n):
        print(a,end=' ')
        a,b=b,a+b
    print()

fibonacci(fibo_entry=input("enter number"))

我收到此错误:

TypeError                                                           Traceback (most recent call last)
    <ipython-input-113-d552685b93df> in <module>()
       7         a,b=b,a+b
       8     print()
    ----> 9 fibonacci(fibo_entry=input("enter number"))

    TypeError: fibonacci() got an unexpected keyword argument 'fibo_entry'

3 个答案:

答案 0 :(得分:4)

TypeError是因为您的函数没有采用fibo_entry - 参数。你可以这样称呼它:

fibonacci(input("enter number"))

但是这会给你另一个错误,因为input总是在python3上返回一个字符串,所以你需要把它转换成一个数字:

import ast
fibonacci(ast.literal_eval(input("enter number")))

或明确地:

fibonacci(int(input("enter number")))

但是我建议将输入作为单独的变量捕获,并将该变量传递给函数:

fibo_entry = int(input("enter number"))
fibonacci(fibo_entry)

答案 1 :(得分:1)

在这一行中,python解释器认为您正在尝试为fibonacci指定一个参数。

fibonacci(fibo_entry=input("enter number"))

最简单的解决方法是将其分开。您还必须强制转换为int,因为输入返回一个字符串:

fibo_entry=int(input("enter number"))
fibonacci(fibo_entry)

答案 2 :(得分:0)

你需要为你的'输入'功能使用类型转换, 这样做:

num=int(input("enter number: "))
fibonacci(num)

或者这样做:

fibonacci(int(input("enter number: ")))