奇怪的输出运行斐波那契序列

时间:2012-11-12 00:59:47

标签: python command-line-arguments fibonacci

使用python的全新,需要帮助弄清楚为什么我的命令行吐出大量的数字而不是我传入的var的序列。这是我到目前为止所拥有的:

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语句:print n。它会返回我的sys.argv传递。

我哪里错了?谢谢你的时间。

2 个答案:

答案 0 :(得分:6)

不要忘记将输入参数(字符串)转换为整数类型:

fib(int(sys.argv[1]))

答案 1 :(得分:1)

尝试fib(int(sys.argv[1])),这可能是问题所在,但我没有尝试过。