IndexError:列表索引超出范围

时间:2017-02-02 21:24:05

标签: python

初学者在python中,请看下面的代码:

import sys
if __name__ == '__main__':

     n = int(sys.argv[1]) 
     i=1
     s=0
     while i<n:
            if (i % 3 == 0 and i % 5 == 0): 
                pass
            elif (i % 3 == 0): 
                s = s+i
            elif (i % 5 == 0):
                s = s+i 
            i=i+1
     print 'The sum is of all 3s and 5s till {}: {}'.format(n,s)

错误不断出现,我不知道如何解决它:

      2 import sys
      3 if __name__ == '__main__':
----> 4     n = int(sys.argv[1])
      5     i=1
      6     s=0

IndexError: list index out of range 

谢谢!

1 个答案:

答案 0 :(得分:1)

调用程序时需要至少发送一个参数(称之为> euler_1.py 1000),因为参数存储在sys.argv[1:]中。

您可以通过在未提供参数时设置默认值来避免此需求:

n = int(sys.argv[1]) if len(sys.argv) > 1 else 1000