2

Pythonを使用するのは初めてですが、コマンドラインが渡した変数までのフィボナッチ数列ではなく、巨大な数字の文字列を吐き出している理由を理解するのに助けが必要です。これまでのところ、次のようになっています。

import sys

def fib(n):
    a, b = 0, 1
    while a < n:
        print a
        a, b = b, a+b

if __name__ == "__main__":
    fib(sys.argv[1])

sys.argv [1]または[1:]を実行する前に、必要な数までnのシーケンスを入力することができました。つまり、nを12と入力すると、0,1,1,3,5,8が得られます。これは正しいです。しかし、これを機能させることはできません。def fib(n)の後にprintステートメントを実行しました:asprintn。sys.argvパスを返します。

どこが間違っているのですか?御時間ありがとうございます。

4

2 に答える 2

6

入力引数(文字列)を整数型に変換することを忘れないでください。

fib(int(sys.argv[1]))
于 2012-11-12T01:02:13.370 に答える
1

fib(int(sys.argv[1]))それが問題かもしれませんが、試していません。

于 2012-11-12T01:05:50.677 に答える