2017-02-02 2 views
0

初心者のリストは、以下のコードを見てみてください。はIndexError: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 

ありがとうございました!

+2

をどのようにあなたのPythonスクリプトを実行する/呼び出していますか? – MooingRawr

+1

私はCanopyでコマンドラインを使うだけです –

+1

あなたは 'python script.py argument'のように呼び出すべきです。 – tmwilson26

答えて

1

引数がsys.argv[1:]に格納されているため、プログラムを呼び出すときに少なくとも1つの引数(> euler_1.py 1000のように)を送信する必要があります。

あなたは、引数を指定しない場合のデフォルトを設定することによって、この必要性を回避することができます

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

ここでは1つの入力引数しかありません –

+3

' sys.argv [0] 'はプログラムの名前です、引数はインデックス' 1 ' – Uriel

関連する問題