为什么我在这个小python代码中得到IndexError?

时间:2016-12-03 10:24:35

标签: python python-2.7 sys index-error

这是代码。请帮我纠正。

#!/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

2 个答案:

答案 0 :(得分:1)

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

IndexError来自于您没有为脚本传递足够的参数。

即使您使用当前的代码片段正确地执行了此操作,您也可以打印参数9次而不是5次,正如您的函数名称所示。

答案 1 :(得分:0)

查看sys.argv[1] meaning in script

  

现在在Python代码中,您可以使用此字符串列表作为输入   你的计划。由于列表是由零基整数索引的,因此可以   使用list [0]语法获取单个项目。例如,要获得   脚本名称:

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

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

filename = sys.argv[1]
     

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