2017-02-21 14 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")) 

私はこのエラーを取得する:あなたの関数がfibo_entry -argumentをとらないので、

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です。あなたはこのようにそれを呼び出すことができます。

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)/ upvote有益な回答を忘れないでください。 :) – 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) 

OR操作を行います。

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