2

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

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): as print n 之后做了一个打印语句。它会返回我的 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 回答