Ihr Programm erwartet zwei Befehlszeilenargumente. sys.argv
ist eine Liste von Befehlszeilenargumenten. Der Fehler IndexError: list index out of range
sagt Ihnen, dass Sie versucht haben, Listenelement Nummer 2 (mit Index 1) zu erhalten, aber die Liste hat nicht so viele Werte.
Sie können diesen Fehler in der Schale reproduzieren:
>> alist = ['Item 0']
>> print(alist[1])
Da alist hat nur Artikel mit dem Index 0 Produkte mit höheren Indizes beantragt wird, dass Fehler verursachen.
Nun zu Ihrem genauen Problem. Das Programm teilt Ihnen die erwarteten Befehlszeilenargumente mit, aber sie wurden nicht bereitgestellt. Biete sie an! Führen Sie diesen Befehl ein:
python add.py 1 2
Dies wird das Skript ausführen und 1
als erstes Argument übergeben, 2
als zweites Argument. In Ihrem Fall das allgemeine Format ist
python add.py [n] [m]
Nun diesem Punkt an werden Sie vielleicht fragen (Sie sollten sein), was sys.argv[0]
ist dann jeder, warum Ihre n
Nummer nicht zu sys.argv[1]
zugewiesen bekommen. sys.argv[0]
ist der Name des laufenden Skripts.
Literaturhinweise auf Befehlszeilenargumente:
http://www.pythonforbeginners.com/system/python-sys-argv
Zusatz. könnten Sie Ihr Skript ändern kräftigeren zu sein:
import sys
if len(sys.argv) < 3: #script name + 2 other arguments required
print("Provide at least two numbers")
else:
n=int(sys.argv[1])
m=int(sys.argv[2])
print(n+m)
Sie sind Ihr Programm mit der richtigen Menge von Argumenten ausgeführt wird? Bitte zeigen Sie, wie Sie das Skript in der Shell – kuro
ausführen, wenn ich den obigen Code ausführen zeigt seinen Fehler. Nehmen Python Shell Parameter wie cmd? –