Typkonvertierung

Datentypen können in einen anderen umgewandelt werden. Implizit hast du dies mit den f-Strings bereits getan. Typkonvertierung wird dir vermutlich meistens bei Zahlen und Strings begegnen.

1Python Programmierkurs
2Python: Methoden
3Kontrollstrukturen
4Strings in Python
5Container
6Objekte in Python
7Module
8Exceptions in Python
9Typkonvertierung
10Python und Dateien
11Datum und Zeit mit Python verarbeiten
12Multithreading
13Netzwerk in Python
14Logging in Python
15GPIO
16Automatische Tests
17Datenbanken mit Python
18Python: Generatoren und List Comprehension
19Python: Webseiten mit Flask
20Python virtuelle Umgebungen
21Interrupts & Signale
22NumPy
23Matplotlib
24match
25Reguläre Ausdrücke Python Tutorial Teil 25

str()

Die str() Funktion wandelt einen Datentyp in einen String um. Nimm mal folgendes Beispiel:

wert = 3

str = 'Die ' + wert + ' Musketiere'

Wenn du das ausführst, erhältst du folgende Fehlermeldung vom Interpreter

TypeError: can only concatenate str (not "int") to str

Das liegt daran, dass die + Operation für Strings nur Strings miteinander verbinden kann. Daher müssen wir die Variable wert in einen String konvertieren.

str = 'Die ' + str(wert) + ' Musketiere'

Mit str() kannst du auch float und Klassen, die die __str__() Methode implementieren, in einen String konvertieren.

int()

Die int() Funktion arbeitet genau anders herum, sie konvertiert einen String in ein int, sofern möglich. Dies ist vor allem nützlich bei Benutzereingaben, die zunächst als String vorliegen.

eingabe = input('Dein Alter (Jahre): ')

alter = int(eingabe)


print(f'Du bist {alter} Jahre alt.')

Mittels der input() Funktion kann der Benutzer sein Alter eingeben. Danach wird mit int() die Eingabe in einen Integer konvertiert und danach in einen f-String eingesetzt und ausgegeben.

Du solltest eine solche Konvertierung immer innerhalb von try-except benutzen, um einen TypeError abzufangen, falls die Eingabe kein Integerwert war.

tuple()

Die Typkonvertierung einer Liste, eines Set oder Strings geschieht mit der tuple() Funktion.

namen = ["Homer", "Marge", "Bart"]

print(tuple(namen))
print(tuple('Jimbo'))
Typkonvertierung Liste und String nach Tupel
Typkonvertierung Liste und String nach Tupel

Du siehst , dass die Namensliste in ein Tupel umgewandelt wurde. Der String wird in seine Zeichen zerlegt und jedes Zeichen bildet dann ein Element des Tupels.

set()

set() konvertiert eine Liste, ein Tupel oder einen String in eine Set. Die Funktion arbeitet ähnlich wie tuple(), da bei einem Set die Reihenfolge der Hashwerte jedes Eintrags für die Reihenfolge ausschlaggebend ist.

from namen import namen


print(set(namen))
print(set("Jimbo"))

bool()

Um Werte des booleschen Typs zu erzeugen gibt es natürlich auch eine Funktion. Strings sind genau dann True, wenn sie mind. ein Zeichen enthalten. Listen, Sets und Tupel sind True, wenn sie mindestens ein Element enthalten, in Dictionaries muss mind. ein Schlüssel enthalten sein, um True zu erzeugen.

from namen import namen

### String nach Boolean
print('String nach Boolean')
print(bool('True')) # ist True
print(bool('Test')) # ist True
print(bool('False')) # ist True
print(bool('')) # ist False

### int nach Boolean
print('int nach Boolean')
print(bool(0)) # ist False
print(bool(1)) # ist True
print(bool(2)) # ist True

### List nach Boolean
print('List nach Boolean')
print(bool(namen)) # ist True
print(bool([])) # ist False

Ob deine eigene Klasse von bool() verarbeitet werden kann, hängt davon ab, ob sie die __bool__() Methode implementiert.

bytes()

bytes() konvertiert einen String oder eine Liste von ASCII-Werten in einen String. Eine Typkonvertierung von String nach String scheint zunächst nicht viel Sinn zu machen, allerdings musst du für den zu verarbeitenden String das Encoding angeben, um daraus einen UTF-8 String zu machen.

some_chars = [65,66,67,68]

print(bytes('Homer', encoding='utf-8'))
print(bytes(some_chars))

bytearray()

bytearray() arbeitet ähnlich wie bytes(), liefert aber ein Array von Zeichen zurück.

some_chars = [65,66,67,68]

print(bytes('Homer', encoding='utf-8'))
print(bytes(some_chars))

Zum Abschluss weise ich nochmal daraufhin, die Konvertierungsfunktionen immer mit einem try-except zu umklammern, um eine saubere Fehlerbehandlung durchführen zu können. Im nächsten Teil schauen wir uns mal an, wie man mit Dateien arbeitet.

Schreibe einen Kommentar

Cookie Consent Banner von Real Cookie Banner