len() mal anders ..

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Drake
User
Beiträge: 71
Registriert: Mittwoch 14. März 2007, 15:48
Wohnort: Bremen
Kontaktdaten:

Mittwoch 14. März 2007, 18:01

Ich habe ein raw_input() befehl in den eine Zahl eingegeben werden soll.

Wie kann ich diese Zahl nun ermitteln? Mit len() erziele ich nicht den erwünschten Erfolg .. Ich möchte wenn die Eingabe z.B. 4 ist auch die 4 ermitteln und nicht 1. Wie ist das realisierbar?

EDIT: Frage geklärt .. Ich bin einfach sehr blind xD
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Mittwoch 14. März 2007, 18:19

Code: Alles auswählen

zahl = raw_input("Gib bitte eine Zahl ein: ")
zahl = int(zahl)
if zahl > 2:
    print "Die Zahl ist groesser als 2 o.o!!!"
else:
    print "Diese Zahl aber leider nicht ._."
Oder kürzer...

Code: Alles auswählen

zahl = int(raw_input("Gib bitte eine Zahl ein: "))
if zahl > 2:
    print "Die Zahl ist groesser als 2 o.o!!!"
else:
    print "Diese Zahl aber leider nicht ._."

oder noch kürzer oO'':

Code: Alles auswählen

if int(raw_input("Bitte geben sie eine Zahl ein: ")) > 2:
    print "Die Zahl ist groesser als 2 o.o!!!"
else:
    print "Diese Zahl aber leider nicht ._."
Edit:
Len() gibt im Endeffekt nur die Länge des Strings aus, also wenn es aus 4 Zeichen besteht wie zum Beispiel "Blub" würde er auch 4 durchgeben... Es ist nicht gedacht, um die Zahl in einem String zu ermitteln.

Code: Alles auswählen

bla = "Bla"
print len(bla)
Gibt zum Beispiel 3 aus oO'
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Mittwoch 14. März 2007, 23:09

Noch eine ganz gefährliche Falle beim int'en von Strings: "Strings mit Zeichen, die mehr als nur Digits/Zahlen sind".

Man sollte immer beim in'ten darauf achten, diesen Schritt in einen Try-Except-Block zu verpacken und "ValueError" abzufangen.

(ich verwende in diesen Beispielen das Wort "test" als raw_input Eingabe)

Bsp. (falsch)
:

Code: Alles auswählen

>>> value = raw_input("Eingabe: ")
>>> value = int(value)
Traceback (most recent call last):
  File "<interactive input>", line 1, in ?
ValueError: invalid literal for int(): test
Bsp. (richtig):

Code: Alles auswählen

>>> value = raw_input("Eingabe: ")
>>> try:
... 	value = int(value)
... except ValueError:
... 	# entsprechende Maßnahmen (Anzeige des Fehlers, erneute Aufforderung zur Eingabe, Default-Wert, etc. etc. etc
Antworten