Python: Wert als Kommdozeilenparameter übergeben

Disap

Mitglied
Moin zusammen.

Ich versuche gerade, Python 2.5 zu lernen (bzw. dessen Grundzüge). Ich benutze den Pyscripter.

Jetzt möchte ich im Pyscripter (unter Python Interpreter) einfach eine Zahl eingeben, die dann mit 2 multipliziert und anschliessen wieder ausgegeben wird. Das meinte ich mit Kommandozeilenparameter. Ich meine nicht den Befehl:

Zahl = input("...")

Soweit ich mir das angelesen habe, müsste das mit

argv[1] gehen.

Also mein Beispielprogramm lautet

Code:
import sys
zahl = int(argv[1])
a=zahl*2
print a

Als Fehlermeldung erhalte ich dann allerdings immer, dass argv nicht definiert ist.

Muss ich da noch irgendwie

verdopplung.py = argv[0]

hinzufügen, oder wie?

Danke!

MfG
Disap
 
Hi,

Einerseits wäre es gut, wenn du statt 'argv[1]' einfach 'sys.argv[1]' schreiben würdest. Andererseits solltest du in deinem Programm auch die Aufrufparameter einstellen (es sei denn, du führst das Script selber aus).

Azi
 
Hallo!

In Python ist das erste Argument (argv[0] immer der Programmname...)

Schau mal hier:
Python:
C:\>type blub.py
import sys

def main():
   print "args: " + str(sys.argv)
   print "x: " + str(sys.argv[1])
   print int(sys.argv[1]) * int(sys.argv[1])

if __name__=="__main__":
   main();

C:\>python blub.py 11
args: ['blub.py', '11']
x: 11
121

Gruß Tom
 
Hallo.

Ich glaube mal, aus dem PyScripter 1.7.2.0 heraus funktionieren die ARGVs nicht.

import sys
zahl = int(sys.argv[1])
a=zahl*2
print a

Es kommt naemlich immer die Fehlermeldung: exceptions indexerror: list index out of range

Kann jemand einen anderen "Editor" fuer Windows empfehlen, um mit Python arbeiten zu koennen?

Es dankt:
Disap
 
Hallo,

der Fehler besagt, dass du irgendwo in deinem Programm auf den Index einer Liste zugreifst, den es nicht gibt. Denk dran: Der erste Index einer Liste n ist immer n[0]!
 
Hallo!

...
Denk dran: Der erste Index einer Liste n ist immer n[0]!
Das erste Element einer Liste bekommt man über n[0] der "erste" index einer Liste ist 0.
Weiterhin ist das erste Element in der Liste sys.argv der name des Python Scripts. Die eigentlichen Parameter gibts dann ab Index 1 ... beispielsweise für den ersten Parameter über sys.argv[1].

Gruß Tom
 

Neue Beiträge

Zurück