Seite 1 von 1

len() mal anders ..

Verfasst: Mittwoch 14. März 2007, 18:01
von Drake
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

Verfasst: Mittwoch 14. März 2007, 18:19
von BlackVivi

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'

Verfasst: Mittwoch 14. März 2007, 23:09
von Masaru
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