2017-02-21 39 views
0

Так что я попробовал печатать последовательность Фибоначчи, используя номер input. Я не уверен, как ввести число в мой код.печать фибоначчи от номера ввода

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' 

ответ

4

TypeError потому, что ваша функция не принимает fibo_entry -argument. Вы могли бы назвать это так:

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) 
+0

Большое спасибо.! Явный метод работал и кажется простым. –

+0

@KrithikaKrishnan Нет проблем. Пожалуйста, не забудьте [принять] (http://stackoverflow.com/help/accepted-answer)/полезные ответы. :) – MSeifert

+0

Привет @KrithikaKrishnan * если * ответ решил вашу проблему, как вы указали, пожалуйста, подумайте о том, чтобы принять ответ (отметьте большой «V» под стрелками вверх/вниз слева). Это подходящий способ указать, что ответ сработал для вас, и увеличивает шансы, что вы получите хорошие ответы в будущем. –

1

В этой строке интерпретатор python считает, что вы пытаетесь указать аргумент для fibonacci.

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

Самое простое решение - отделить его. Вы также должны отбрасывать как int, потому что вход возвращает строку:

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

вам нужно использовать типажей для функции «ввод», сделать так:

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

ИЛИ сделать так:

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