# Python: Wert als Kommdozeilenparameter übergeben



## Disap (15. Dezember 2006)

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


```
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


----------



## Azi (16. Dezember 2006)

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


----------



## Thomas Darimont (16. Dezember 2006)

Hallo!

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

Schau mal hier:

```
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


----------



## Disap (16. Dezember 2006)

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


----------



## chell (28. Dezember 2006)

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]!


----------



## Thomas Darimont (28. Dezember 2006)

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


----------

