无法在Python中使用命令行参数

Léo*_* 준영 0 python

我跑

import sys

print "x \tx^3\tx^3+x^3\t(x+1)^3\tcube+cube=cube+1"

for i in range(sys.argv[2]):              // mistake here
    cube=i*i*i
    cube2=cube+cube
    cube3=(i+1)*(i+1)*(i+1)
    truth=(cube2==cube3)

    print i, "\t", cube, "\t", cube + cube, "\t", cube3, "\t", truth
Run Code Online (Sandbox Code Playgroud)

我明白了

Traceback (most recent call last):
  File "cube.py", line 5, in <module>
    for i in range(sys.argv[2]):
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)

如何在代码中使用命令行参数如下?

使用示例

python cube.py 100
Run Code Online (Sandbox Code Playgroud)

它应该给

x   x^3 x^3+x^3 (x+1)^3 cube+cube=cube+1
0   0   0   1   False
1   1   2   8   False
2   8   16  27  False
--- cut ---
97  912673  1825346     941192  False
98  941192  1882384     970299  False
99  970299  1940598     1000000     False
Run Code Online (Sandbox Code Playgroud)

nos*_*klo 6

使用:

sys.argv[1]
Run Code Online (Sandbox Code Playgroud)

还要注意,参数总是字符串,并且range需要一个整数.

所以正确的代码是:

for i in range(int(sys.argv[1])):
Run Code Online (Sandbox Code Playgroud)