Seite 1 von 1
Übergabeparameter in if abfrage ?!
Verfasst: Montag 15. Mai 2006, 08:34
von stigi
Moin
ehm ich hab 2 Parameter die ich bei Scriptaufruf mitgeb. diese beiden werte möchte ich in ner if-abfrage verwenden.
Code: Alles auswählen
import sys
param1 = sys.argv[1]
param2 = sys.argv[2]
wert1=raw_input()
wert2=raw_input()
if (wert1 <= param1 or wert2 <= param2):
print "in der schleife"
else:
print "nicht in der schleife"
der code ist nur beispielhaft. bei mir isses jetzt so wenn ich jetzt z.b. 10 und 10 mitgeb wird das hallo trotzdem ausgegeben, wenn ich in der if anweisung anstatt param1 und param2 10 und 10 schreib funktionierts...
was is daran jetzt falsch ?

Re: Übergabeparameter in if abfrage ?!
Verfasst: Montag 15. Mai 2006, 08:38
von gerold
Hi stigi
sys.argv[x] ist immer ein String. Du solltes Zahlen nur mit Zahlen vergleichen.
mfg
Gerold

Verfasst: Montag 15. Mai 2006, 08:40
von stigi
ohje danke ja

ich finds lustig, ich hab grad mein posting nochmal durchgelesen und ich hatte mich da so unverständlich ausgedrückt, dass ich selber nicht mehr wusste was ich wollte lol

aber deine antwort hat mir zu 100% geholfen danke
kann ich daraus einfach
machen oder ?
Verfasst: Montag 15. Mai 2006, 10:39
von Masaru
Joa, kannst du ... aber
falls dann die übergebenen Parameter doch keine Integer sind (sondern z.B. Buchstabensalat, einfache Strings, probiers einfach auch mal selber im Interpreter aus

), dann knallt dir das Script mit einem ValueError um die Ohren.
Du könntest es aber wie folgt absichern:
Code: Alles auswählen
import sys
if len(sys.argv) != 3:
sys.exit("Fehler: Script benoetigt genau zwei Parameter")
# hier bricht nun dank dem sys.exit() dein Script ab,
# wird im weiteren auch verwendet
try:
param1 = int(sys.argv[1])
except ValueError:
sys.exit("Fehler: Erster Parameter muss ein Integer sein")
try:
param2 = int(sys.argv[2])
except ValueError:
sys.exit("Fehler: Zweiter Parameter muss ein Integer sein")
Etwas "komfortabler" kannst du aber auch parametrisierte oder gar mit Optionen zu versehende Command-Line Scripte/Programme mit dem Python Modul
optparse (
!!!: Link für Version 2.4.2) aufwerten.
Verfasst: Montag 15. Mai 2006, 12:10
von stigi
dankedön
