Seite 1 von 1
Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 15:32
von Kamik423
Code: Alles auswählen
>>> 4.type
"int"
>>> "text".type
"String"
>>> (1, "text").type
"list"
Gibts das- oder etwas vergleichliches?
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 15:38
von BlackJack
@Kamik423: Ja, aber das will man in der Regel nicht machen. Warum denkst Du das zu brauchen?
(Bei 5. würde man wohl eher `tuple` erwarten statt `list`.)
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 15:52
von /me
Kamik423 hat geschrieben:Gibts das- oder etwas vergleichliches?
Hast du mal in der Python-Dokumentation nach
type gesucht?
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 16:05
von Namitz243
hi kamik,
ich versteh deine Frage nicht ganz aber die einstgsten richtigen Datentypen in Python sind
str (alle texte)
int (ganze zahlen)
float (kommazahlen)
listen und ähnliches sind keine richtigen Datentypen
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 16:26
von jerch
Namitz243 hat geschrieben:listen und ähnliches sind keine richtigen Datentypen
Wuss? Wie kommst du denn darauf? Was sind Deiner Meinung nach "richtige" Datentypen?
Namitz243 hat geschrieben:str (alle texte)
Da gibst mindestens noch Unicodestrings bzw. für Python3 Bytesstrings.
Namitz243 hat geschrieben:int (ganze zahlen)
Was ist mit long?
Namitz243 hat geschrieben:float (kommazahlen)
Jepp und Decimal sind auch "Kommazahlen".
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 16:53
von BlackJack
@Namitz243: Die Aussage ist Unsinn. Du deckst nicht einmal die „eingebauten” Datentypen ab, wo zum Beispiel auch `bool`, `NoneType`, und `complex` zu gehören, sondern natürlich ist `list` auch ein richtiger Datentyp. Sowie alles was mittels `class` definiert wurde.
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 17:08
von snafu
Namitz243 hat geschrieben:hi kamik,
ich versteh deine Frage nicht ganz aber die einstgsten richtigen Datentypen in Python sind
str (alle texte)
int (ganze zahlen)
float (kommazahlen)
listen und ähnliches sind keine richtigen Datentypen
Ist das der Versuch, das Konzept der primitiven Datentypen in Java (die übrigens auch nicht "richtiger" sind als alle anderen Java-Typen) auf Python zu übertragen, oder wie kommst du zu dieser Aussage?
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 17:46
von Kamik423
Ja, das mit list/tuple war ein schreibfehler.
Gibt es etwas das nach variablentyp testen kann?
Ich möchte einfach nur einen String output oder etwas vergleichliches habem, das mir den datentyp angibt.
Was ist dieses .type? Ich habe es nur als "platzhalter" verwendet, und werde aus der dokumentation nicht ganz schlau

Die angegebenen waren auch nur beispiele. Es wäre großartig, wenn das für alle datentypen funktionieren würde
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 17:52
von /me
Kamik423 hat geschrieben:Was ist dieses .type? Ich habe es nur als "platzhalter" verwendet, und werde aus der dokumentation nicht ganz schlau

So schwierig ist die Dokumentation ja nun eigentlich nicht.
Code: Alles auswählen
>>> print(type(4))
<class 'int'>
>>> print(type('text'))
<class 'str'>
>>> print(type([]))
<class 'list'>
>>> print(type(type('x')))
<class 'type'>
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 17:55
von Kamik423
Und was kann ich mit diesem "type-type" anfangen? Kann ich das in einen string umwandeln (irgendwie)
Und vielen dank nochmal!
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 18:15
von cofi
Ich versuch es nochmal: Was willst du eigentlich machen?
Wenn man Code schreibt, der sich an einem konkreten Typ orientiert macht man im allgemeinen etwas falsch oder kaempft gegen die Sprache selbst.
Will man das Programmverhalten abhaengig von Typen machen, ist man mit `isinstance` besser beraten (oder noch besser: man benutzt Objektorientierung oder Ducktyping/Protokolle). Aber auch hier braucht man keinen String.
Und dann kann man mit `str` alles in einen String umwandeln .. ob das Sinn macht ist ein anderes Thema.
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 19:15
von Kamik423
Es geht hierbei um daten die ich aus einer .txt datei importiere. Ich muss die verarbeiten können.
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 19:27
von EyDu
Das ist doch kein Grund für einen Test auf Typen.
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 19:36
von BlackJack
@Kamik423: Aus einer Textdatei bekommt man nur `str` oder `unicode` (Python 2) beziehungsweise `bytes` oder `str` (Python 3). Diesen Text kann man dann irgendwie geeignet in Werte mit anderen Datentypen parsen. Aber da muss man *vorher* ja schon wissen in *was* für einen Typ man die entsprechenden Teile des Textes parsen will, und nicht hinter den Wert testen.
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 20:35
von cofi
EyDu hat geschrieben:Das ist doch kein Grund für einen Test auf Typen.
Aber so kann man den Datentyp abspeichern
@Kamik423: Ganz ehrlich: Du willst JSON oder pickle benutzen.
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 20:39
von Kamik423
Ja aber wenn ich den string "74656" kriege möchte ich das in einen int parsen, und muss dafür wissen, dass es ein int ist.
Der string "[1701,74205]" sollte eine liste sein [1701,74206]
Und dazu muss ich den datentyp zusätzlich abspeichern, den ich aber irgendwie ausfinden will.
Was sind json und pickle, ich kenne nur das normale open() und readlines()
Re: Für variablen typ testen
Verfasst: Freitag 16. Mai 2014, 20:47
von EyDu
Kamik423 hat geschrieben:Ja aber wenn ich den string "74656" kriege möchte ich das in einen int parsen, und muss dafür wissen, dass es ein int ist.
Nicht, wenn du ein vernünftiges Format wählst. Dann musst du gar nichts selber machen.
Kamik423 hat geschrieben:Was sind json und pickle, ich kenne nur das normale open() und readlines()
Es gibt Suchmaschinen und Dokumentation zu den Modulen.
Re: Für variablen typ testen
Verfasst: Sonntag 18. Mai 2014, 21:53
von bfm
Hi,
schau mal hier in der Doku zu Python 3.3:
https://docs.python.org/3.3/library/std ... ng-methods
Mit str.isdigit() kannst zB testen, ob in dem String nur Zahlen enthalten sind und wenn nicht entsprechend reagieren.