Abfrage string und int

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
tobs839
User
Beiträge: 2
Registriert: Donnerstag 5. Juni 2008, 19:41

Donnerstag 5. Juni 2008, 19:47

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
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Donnerstag 5. Juni 2008, 19:59

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).
tobs839
User
Beiträge: 2
Registriert: Donnerstag 5. Juni 2008, 19:41

Donnerstag 5. Juni 2008, 20:03

danke danke

geht das ganze auch mit "if"???
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Donnerstag 5. Juni 2008, 20:07

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.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Donnerstag 5. Juni 2008, 21:55

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 ... :D
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Donnerstag 5. Juni 2008, 22:01

Code: Alles auswählen

data = raw_input()
try:
    data = int(data)
except ValueError:
    pass

print type(data)
[/quote]
BlackJack

Freitag 6. Juni 2008, 07:16

Vielleicht war das auch eine Trickfrage. `raw_intput()` liefert nämlich grundsätzlich Zeichenketten. :-)
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Freitag 6. Juni 2008, 08:44

pütone hat geschrieben:Damit es "echt pythonisch" wird, müsste man "finally" durch "except" ersetzen ... :D
Hups... :roll: Naja, beim ersten String hätte man es bemerkt.
Antworten