Problemm Zahl wird nicht als int erkannt.

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
sebastian3984
User
Beiträge: 21
Registriert: Samstag 15. Mai 2010, 17:55

Meine Idee:

Ich wollte ein Code schreiben der überprüft ob in ein String der enthaltene Wert eine Zahl ist.

Mein Code:

Code: Alles auswählen

'''
Created on 24.05.2010

@author: Sebastian
'''
zahl = 23
if zahl is type(int):
  print "Es ist eine Zahl"
else:
  print "Ein String !"
Ps: Bin vom Galileo Openbook umgestiegen, benutze jetzt den Video Kurs von video2brain: http://www.video2brain.com/de/products-147.htm (Usenext ftw ^^) komme damit viel besser als mit den Galileo Openbook klar :)
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Code: Alles auswählen

>>> type(23) is int
True
sebastian3984
User
Beiträge: 21
Registriert: Samstag 15. Mai 2010, 17:55

Code: Alles auswählen

'''
Created on 24.05.2010

@author: Sebastian
'''
zahl = 23
if type(zahl) is int:
  print "Es ist eine Zahl"
else:
  print "Ein String !"
Thx, wie änder ich eigentlich hier mein Geburtstag's Datum ?
BlackJack

@sebastian3984: Nachdem die Frage technisch beantwortet wurde, wollte ich noch anmerken, dass man so einen Typtest nicht machen sollte wenn es sich vermeiden lässt. Das ist ein "code smell". Und falls man doch unbedingt auf Typen testen muss, sollte man eher `isinstance()` dazu verwenden.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

sebastian3984 hat geschrieben:Ich wollte ein Code schreiben der überprüft ob in ein String der enthaltene Wert eine Zahl ist.

Mein Code:

Code: Alles auswählen

'''
Created on 24.05.2010

@author: Sebastian
'''
zahl = 23
if zahl is type(int):
  print "Es ist eine Zahl"
else:
  print "Ein String !"
Ein einfacher Typtest wird so nie funktionieren. Der Typ eines Strings wird nie dem Typ `int` entsprechen und wenn da noch so viele Zahlen drin sind. Python ist nicht PHP, wo willkürlich die Typen getauscht werden. Am einfachstes ist es, wenn du versuchst den String als Zahl zu interpretieren:

Code: Alles auswählen

string = ... #irgendwas
try:
    zahl = int(string)
    print "Es ist eine ganze Zahl"
except ValueError:
    print "Keine ganze Zahl"
Antworten