初学者在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
谢谢!
答案 0 :(得分:1)
调用程序时需要至少发送一个参数(称之为> euler_1.py 1000
),因为参数存储在sys.argv[1:]
中。
您可以通过在未提供参数时设置默认值来避免此需求:
n = int(sys.argv[1]) if len(sys.argv) > 1 else 1000