-2

这是代码。请帮我纠正它。

#!/usr/bin/env python

import sys

def print5times(line_to_print):
        for count in range(0,5) :
                print line_to_print

print5times(sys.argv[1])

运行此代码时,我收到此错误:

 Traceback (most recent call last):
   File "./func.py", line 9, in <module>
     print5times(sys.argv[1])
 IndexError: list index out of range
4

2 回答 2

1

sys.argv[1]为您提供在命令行上传递的第二个参数。

IndexError是因为您没有向脚本传递足够的参数。

即使您正确地做到了这一点,使用您当前的代码段,您将打印参数 9 次而不是仅 5 次,正如您的函数名称所暗示的那样。

于 2016-12-03T10:28:44.683 回答
0

看看脚本中的 sys.argv[1] 含义

现在在您的 Python 代码中,您可以使用这个字符串列表作为程序的输入。由于列表由从零开始的整数索引,因此您可以使用 list[0] 语法获取各个项目。例如,要获取脚本名称:

script_name = sys.argv[0] # this will always work.

虽然知道这很有趣,但您很少需要知道您的脚本名称。要获取文件名脚本后的第一个参数,您可以执行以下操作:

filename = sys.argv[1]

这是一种非常常见的用法,但请注意,如果没有提供参数,它将失败并返回 IndexError。

于 2016-12-03T11:18:37.700 回答