Seite 1 von 1
Abfrage string und int
Verfasst: Donnerstag 5. Juni 2008, 19:47
von tobs839
Hallo COMMUNITY,
ich habe eine Arbeit geschrieben über Phyton.
Und dort hatten wir eine Aufgabe in der wir sollen durch raw_input()
Abfragen ob es ein string oder ein interger wert ist
ich hatte diese idee
#############
a=raw_input()
if a=int:
print 'integer'
if a = string:
print 'string'
#############
villeicht kann mir jemand helfen!!!
mfg
Verfasst: Donnerstag 5. Juni 2008, 19:59
von EyDu
Das funktioniert so leider nicht. Erstens ist "=" kein Vergleich, sondern eine Zuweisung und zweitens kann der Interpreter natürlich nicht ahnen, dass du den Typ deiner Variable mit einem anderen Typ vergleichen willst.
Der pythonische Weg wäre wohl:
Code: Alles auswählen
data = raw_input()
try:
data = int(data)
finally:
pass
print type(data)
Du kannst natürlich auch testen, ob nur Ziffern im String vorkommen (und als erstes Zeichen eventuell noch ein Vorzeichen).
Verfasst: Donnerstag 5. Juni 2008, 20:03
von tobs839
danke danke
geht das ganze auch mit "if"???
Verfasst: Donnerstag 5. Juni 2008, 20:07
von EyDu
Das kannst du in Zeile 7 einfügen, indem du gegen dem Typ vergleichst (oder besser: verwende "instanceof", die Dokumentation hilft dir da). Ein Integer hat den Typ "int" ein String den Typ "string". Den Rest überlasse ich einfach mal Dir als (ganz ganz kleine) Übung.
Verfasst: Donnerstag 5. Juni 2008, 21:55
von numerix
EyDu hat geschrieben:
Der pythonische Weg wäre wohl:
Code: Alles auswählen
data = raw_input()
try:
data = int(data)
finally:
pass
print type(data)
Damit es "echt pythonisch" wird, müsste man "finally" durch "except" ersetzen ...

Verfasst: Donnerstag 5. Juni 2008, 22:01
von audax
Code: Alles auswählen
data = raw_input()
try:
data = int(data)
except ValueError:
pass
print type(data)
[/quote]
Verfasst: Freitag 6. Juni 2008, 07:16
von BlackJack
Vielleicht war das auch eine Trickfrage. `raw_intput()` liefert nämlich grundsätzlich Zeichenketten.

Verfasst: Freitag 6. Juni 2008, 08:44
von EyDu
pütone hat geschrieben:Damit es "echt pythonisch" wird, müsste man "finally" durch "except" ersetzen ...

Hups...

Naja, beim ersten String hätte man es bemerkt.