2017-02-02 7 views
0

Anfänger in Python, nehmen Sie bitte einen Blick auf den Code unten:Indexerror: Listenindex außerhalb des zulässigen Bereichs

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) 

Der Fehler kommt immer heraus, ich weiß nicht, wie es zu lösen:

 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 

Vielen Dank!

+2

Wie Sie anrufen/Ihre Python-Skript ausgeführt wird? – MooingRawr

+1

Ich benutze nur die Befehlszeile in Canopy –

+1

Sie sollten es wie 'Python script.py Argument' aufrufen. – tmwilson26

Antwort

1

Sie müssen mindestens ein Argument beim Aufruf des Programms senden (nennen Sie es wie > euler_1.py 1000), da die Argumente in sys.argv[1:] gespeichert sind.

Sie können diese Notwendigkeit vermeiden, indem eine Standard-Einstellung, wenn kein Argument geliefert:

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

aber ich habe nur ein Eingabeargument hier –

+3

' sys.argv [0] 'ist der Name des Programms, Argumente beginnen von Index' 1 ' – Uriel

Verwandte Themen