Python-Einstieg: Vollständiger Guide zu Typkonvertierung – Zahlen, Strings, Listen

目次

1. Einführung

Python ist eine Programmiersprache mit einfacher Syntax und leistungsstarken Funktionen, die von Anfängern bis zu Fortgeschrittenen weit verbreitet genutzt wird. Unter diesen ist „Cast (Typumwandlung)“ eine unverzichtbare Technik, um Daten angemessen zu verarbeiten.

In diesem Artikel erklären wir Cast (Typumwandlung) in Python detailliert und erläutern es mit Code-Beispielen, damit es auch für Anfänger leicht verständlich ist. Durch das Lesen dieses Artikels werden Sie Folgendes verstehen.

  • Das grundlegende Konzept von Cast (Typumwandlung) in Python
  • Der Unterschied zwischen expliziter und impliziter Typumwandlung
  • Konkrete Methoden der Typumwandlung und Hinweise
  • Häufige Fehler und deren Vermeidung

Cast zu verstehen macht die Datenverarbeitung flexibler und hilft, Bugs zu vermeiden. Insbesondere ist es wichtig, bei der Handhabung unterschiedlicher Datentypen eine angemessene Typumwandlung durchzuführen.

2. Was ist ein Cast (Typumwandlung)? [Grundlagen von Python]

2.1 Definition der Typumwandlung

Typumwandlung (Cast) bezeichnet die Umwandlung eines Datentyps in einen anderen. Zum Beispiel kann man Ganzzahlen in Strings umwandeln oder Strings in Zahlen.

In Fällen wie den folgenden ist eine Typumwandlung notwendig:

  • Wenn man Benutzereingaben (normalerweise Strings) in Zahlen umwandeln möchte, um Berechnungen durchzuführen
  • Wenn man eine Liste von Zahlen in Strings umwandeln möchte, um das Format zu ordnen
  • Um in der internen Verarbeitung von Python Daten unterschiedlicher Typen angemessen zu handhaben

In Python kann man mit eingebauten Funktionen einfach Typumwandlungen durchführen.

2.2 Explizite Typumwandlung (Explicit Type Conversion)

Explizite Typumwandlung bedeutet, dass der Entwickler absichtlich einen Datentyp in einen anderen umwandelt. In Python verwendet man dafür Funktionen wie die folgenden.

UmwandlungsfunktionBeschreibungBeispiel
int()String oder Gleitkommazahl in Ganzzahl umwandelnint("10")10
float()String oder Ganzzahl in Gleitkommazahl umwandelnfloat("3.14")3.14
str()Zahlen oder Listen usw. in String umwandelnstr(100)"100"
list()Tupel oder String in Liste umwandelnlist("abc")['a', 'b', 'c']
tuple()Liste in Tupel umwandelntuple([1, 2, 3])(1, 2, 3)
dict()Schlüssel-Wert-Paare in Dictionary umwandelndict([(1, 'a'), (2, 'b')]){1: 'a', 2: 'b'}

Beispiel: Explizite Typumwandlung

# Ganzzahl in String umwandeln
num = 10
str_num = str(num)
print(str_num)  # "10"
print(type(str_num))  # <class 'str'>

# String in Gleitkommazahl umwandeln
float_num = float("3.14")
print(float_num)  # 3.14
print(type(float_num))  # <class 'float'>

2.3 Implizite Typumwandlung (Implicit Type Conversion)

Implizite Typumwandlung bedeutet, dass Python automatisch den Datentyp umwandelt. Auch ohne explizite Angabe durch den Entwickler erfolgt die Umwandlung intern in den passenden Typ.

Beispiel: Implizite Typumwandlung

num_int = 10  # Ganzzahltyp
num_float = 2.5  # Gleitkommazahl

# Ganzzahl + Gleitkommazahl → in Gleitkommazahl umwandeln
result = num_int + num_float
print(result)  # 12.5
print(type(result))  # <class 'float'>

So passt Python automatisch den Datentyp an, damit das Ergebnis der Operation korrekt ist.

2.4 Vorteile und Hinweise zur Verwendung von Typumwandlungen

Vorteile der Typumwandlung

  • Daten wie Benutzereingaben können angemessen verarbeitet werden
  • Berechnungen und Operationen zwischen unterschiedlichen Datentypen werden möglich
  • Durch explizite Typumwandlung wird das Verhalten des Programms vorhersehbarer

⚠️ Hinweise zur Typumwandlung

  • Unangemessene Typumwandlungen verursachen Fehler
    Beispiel: int("abc") kann nicht umgewandelt werden und erzeugt einen ValueError
  • Zu starkes Verlassen auf implizite Typumwandlungen kann zu Bugs führen
    Beispiel: Direkte Verkettung von Ganzzahl und String verursacht einen TypeError
  • Typumwandlungen haben einen Kostenaufwand
    Bei großen Datenmengen beeinflusst das die Performance

Zum nächsten Abschnitt

侍エンジニア塾

3. Python-Datentypen und -konvertierungen

3.1 Wichtige Datentypen in Python

Python hat die folgenden grundlegenden Datentypen.

DatentypBeschreibungBeispiel
int (Ganzzahl)Datentyp für Ganzzahlen10, -5, 1000
float (Gleitkommazahl)Zahlen mit Dezimalstellen3.14, -2.5, 1.0
str (Zeichenkette)Folge von Zeichen (Text)"Hello", 'Python'
bool (Wahrheitswert)Typ mit True oder FalseTrue, False
list (Liste)Array-Typ, der mehrere Werte speichert[1, 2, 3], ['a', 'b', 'c']
tuple (Tupel)Unveränderliche Liste(1, 2, 3), ('x', 'y')
dict (Wörterbuch)Datentyp, der Schlüssel-Wert-Paare speichert{'name': 'Alice', 'age': 25}
set (Menge)Sammlung ohne Duplikate{1, 2, 3}, {'apple', 'banana'}

3.2 Konvertierung der einzelnen Datentypen

3.2.1 Konvertierung zu numerischen Typen (int, float)

num_str = "100"
num_int = int(num_str)  # Konvertiert den String "100" zum Integer 100
num_float = float(num_int)  # Konvertiert den Integer 100 zum Float 100.0

print(num_int, type(num_int))  # 100 <class 'int'>
print(num_float, type(num_float))  # 100.0 <class 'float'>

3.2.2 Konvertierung zu String (str)

num = 42
str_num = str(num)  # Konvertiert den Integer 42 zum String "42"
print(str_num, type(str_num))  # "42" <class 'str'>

3.2.3 Konvertierung zu Liste (list) · Tupel (tuple) · Menge (set)

tuple_data = (1, 2, 3)
list_data = list(tuple_data)  # Konvertiert Tupel zu Liste
print(list_data, type(list_data))  # [1, 2, 3] <class 'list'>

list_data = [4, 5, 6]
tuple_data = tuple(list_data)  # Konvertiert Liste zu Tupel
print(tuple_data, type(tuple_data))  # (4, 5, 6) <class 'tuple'>

3.2.4 Konvertierung zu Wörterbuch (dict)

list_of_pairs = [[1, 'apple'], [2, 'banana']]
dict_data = dict(list_of_pairs)  # Konvertiert Liste zu Wörterbuch
print(dict_data, type(dict_data))  # {1: 'apple', 2: 'banana'} <class 'dict'>

3.3 Zusammenfassung der Datentypkonvertierungen

In Python können verschiedene Datentypen mit eingebauten Funktionen wie int(), float(), str() usw. konvertiert werden.

KonvertierungsfunktionBeschreibungBeispiel
int(x)Zu Integer konvertierenint("100")100
float(x)Zu Float konvertierenfloat("3.14")3.14
str(x)Zu String konvertierenstr(42)"42"
list(x)Zu Liste konvertierenlist((1, 2, 3))[1, 2, 3]
tuple(x)Zu Tupel konvertierentuple([1, 2, 3])(1, 2, 3)
set(x)Zu Menge konvertierenset([1, 2, 2, 3]){1, 2, 3}
dict(x)Zu Wörterbuch konvertierendict([(1, 'a'), (2, 'b')]){1: 'a', 2: 'b'}

4. Methode der expliziten Typkonvertierung (Cast) [mit Code-Beispielen]

Python ermöglicht es, Datentypen absichtlich zu ändern, indem eine „explizite Typkonvertierung (Explicit Type Conversion)“ durchgeführt wird.
Dies ist eine Methode, bei der Entwickler integrierte Funktionen wie int() oder str() verwenden, um Datentypen manuell zu konvertieren.

4.1 Konvertierung zu Ganzzahl (int)

# Zeichenkette zu Ganzzahl konvertieren
num1 = int("10")
print(num1, type(num1))  # 10 <class 'int'>

# Gleitkommazahl zu Ganzzahl konvertieren (Dezimalteil abschneiden)
num2 = int(3.99)
print(num2)  # 3

# Booleschen Wert zu Ganzzahl konvertieren
num3 = int(True)
num4 = int(False)
print(num3, num4)  # 1 0

4.2 Konvertierung zu Gleitkommazahl (float)

# Zeichenkette zu Gleitkommazahl konvertieren
num1 = float("10.5")
print(num1, type(num1))  # 10.5 <class 'float'>

# Ganzzahl zu Gleitkommazahl konvertieren
num2 = float(10)
print(num2)  # 10.0

4.3 Konvertierung zu Zeichenkette (str)

# Zahl zu Zeichenkette konvertieren
num1 = str(100)
num2 = str(3.14)
print(num1, type(num1))  # "100" <class 'str'>
print(num2, type(num2))  # "3.14" <class 'str'>

4.4 Konvertierung zu Liste (list)

# Tupel zu Liste konvertieren
tuple_data = (1, 2, 3)
list_data = list(tuple_data)
print(list_data, type(list_data))  # [1, 2, 3] <class 'list'>

# Zeichenkette zu Liste konvertieren
str_data = "hello"
list_chars = list(str_data)
print(list_chars)  # ['h', 'e', 'l', 'l', 'o']

4.5 Konvertierung zu Tupel (tuple)

# Liste zu Tupel konvertieren
list_data = [1, 2, 3]
tuple_data = tuple(list_data)
print(tuple_data, type(tuple_data))  # (1, 2, 3) <class 'tuple'>

4.6 Konvertierung zu Menge (set)

# Liste zu Menge konvertieren (Duplikate entfernen)
list_data = [1, 2, 2, 3, 3, 3]
set_data = set(list_data)
print(set_data, type(set_data))  # {1, 2, 3} <class 'set'>

4.7 Konvertierung zu Dictionary (dict)

# Liste von Listen zu Dictionary konvertieren
list_of_pairs = [[1, 'apple'], [2, 'banana']]
dict_data = dict(list_of_pairs)
print(dict_data)  # {1: 'apple', 2: 'banana'}

4.8 Zusammenfassung

Die explizite Typkonvertierung in Python ist wichtig, um das Programm flexibler zu gestalten.
Durch die angemessene Verwendung von int(), float(), str() usw. können Konvertierungen zwischen verschiedenen Datentypen einfach durchgeführt werden.

KonvertierungsfunktionBeschreibung
int(x)Zu Ganzzahl konvertieren
float(x)Zu Gleitkommazahl konvertieren
str(x)Zu Zeichenkette konvertieren
list(x)Zu Liste konvertieren
tuple(x)Zu Tupel konvertieren
set(x)Zu Menge konvertieren
dict(x)Zu Dictionary konvertieren

5. Implizite Typkonvertierung (Automatische Konvertierung in Python)

5.1 Was ist die automatische Typkonvertierung in Python?

Die implizite Typkonvertierung ist ein Mechanismus, bei dem Python automatisch den geeigneten Datentyp konvertiert, ohne dass der Entwickler explizit anweisen muss.

Die implizite Typkonvertierung in Python tritt hauptsächlich bei numerischen Typen (int, float, complex) auf.

Beispiel: Operation mit Ganzzahl (int) und Gleitkommazahl (float)

num_int = 10   # Ganzzahl
num_float = 2.5  # Gleitkommazahl

result = num_int + num_float  # Python konvertiert int implizit zu float
print(result, type(result))  # 12.5 <class 'float'>

5.2 In welchen Situationen tritt eine implizite Konvertierung auf?

Fall 1: Ganzzahl (int) → Gleitkommazahl (float)

a = 5
b = 2.0
result = a / b  # Python konvertiert int zu float
print(result, type(result))  # 2.5 <class 'float'>

Fall 2: Ganzzahl (int) → Komplexe Zahl (complex)

a = 10   # int
b = 2 + 3j  # complex (imaginär)
result = a + b
print(result, type(result))  # (12+3j) <class 'complex'>

Fall 3: Boolescher Wert (bool) → Numerischer Wert (int, float)

print(True + 2)   # 3  (True wird als 1 behandelt)
print(False + 3.5)  # 3.5 (False wird als 0 behandelt)

5.3 Vorsichtsmaßnahmen und Vermeidungsstrategien bei impliziter Typkonvertierung

⚠️ Vorsichtsmaßnahme 1: Mischung von String (str) und numerischen Werten (int, float)

num = 10
text = "Yen"

# Dies führt zu einem Fehler
# print(num + text)  # TypeError

# Korrekte Methode
print(str(num) + text)  # "10Yen"

⚠️ Vorsichtsmaßnahme 2: Listen oder Dictionaries werden nicht implizit konvertiert

num_list = [1, 2, 3]

# Dies führt zu einem Fehler
# print(num_list + 10)  # TypeError

# Korrekte Methode
num_list.append(10)
print(num_list)  # [1, 2, 3, 10]

5.4 Vorteile und Nachteile der impliziten Typkonvertierung

Vorteile

  • Der Entwickler muss die Typkonvertierung nicht bewusst beachten, um reibungslos zu rechnen.
  • intfloat oder intcomplex usw. ermöglichen Konvertierungen ohne Verlust der Datenpräzision.
  • Durch die Konvertierung von bool zu int sind intuitive Berechnungen wie True + 1 == 2 möglich.

⚠️Nachteile

  • Unerwünschte Typkonvertierungen können Bugs verursachen (z. B. wenn int zu float wird, kann es zu Rundungsfehlern bei Dezimalstellen kommen).
  • Datentypen wie Listen oder Dictionaries werden nicht implizit konvertiert, daher ist eine angemessene Behandlung erforderlich.

5.5 Zusammenfassung

Python führt hauptsächlich bei numerischen Typen implizite Typkonvertierungen durch, sodass der Entwickler keine expliziten Casts vornehmen muss, um mit dem geeigneten Typ zu rechnen.

AusgangstypZieltypBeispiel
intfloatfloat10 + 2.5 → 12.5
intcomplexcomplex10 + (2+3j) → (12+3j)
boolintintTrue + 1 → 2

6. Häufige Fehler und Maßnahmen beim Casting in Python

6.1 Hauptfehler, die beim Casting auftreten

Beim Casting (Typumwandlung) in Python treten häufig Fehler wie die folgenden auf.

Art des FehlersUrsache des AuftretensBeispiel
ValueErrorWenn man versucht, nicht konvertierbare Daten zu konvertierenint("abc")
TypeErrorWenn man ungeeignete Typen operiert10 + "5"
KeyErrorWenn man einen nicht existierenden Schlüssel in einem dict angibtmy_dict["missing_key"]
AttributeErrorWenn man eine Methode oder ein Attribut verwendet, das im Typ nicht existiert10.append(5)

6.2 ValueError: Ungültige Werteumwandlung

# Der String "abc" kann nicht in eine Ganzzahl umgewandelt werden
num = int("abc")  # ValueError

Lösung

user_input = "abc"

if user_input.isdigit():
    num = int(user_input)
    print(num)
else:
    print("Kann nicht in eine Zahl umgewandelt werden")

6.3 TypeError: Ungeeignete Operation zwischen Typen

num = 10
text = "Yen"
print(num + text)  # TypeError

Lösung

print(str(num) + text)  # "10Yen"

6.4 KeyError: Abruf eines nicht existierenden Schlüssels aus einem Dictionary

my_dict = {"name": "Alice", "age": 25}
print(my_dict["gender"])  # KeyError

Lösung

print(my_dict.get("gender", "Keine Information"))  # "Keine Information"

6.5 AttributeError: Verwendung einer nicht existierenden Methode oder eines Attributs

num = 10
num.append(5)  # AttributeError

Lösung

if hasattr(num, "append"):
    num.append(5)
else:
    print("Dieses Objekt hat keine append()-Methode")

6.6 ZeroDivisionError: Nullteilungsfehler

result = 10 / 0  # ZeroDivisionError

Lösung

num = 10
denominator = 0

if denominator != 0:
    result = num / denominator
    print(result)
else:
    print("Division durch Null ist nicht möglich")

6.7 IndexError: Zugriff außerhalb des Listenbereichs

my_list = [1, 2, 3]
print(my_list[5])  # IndexError

Lösung

if 0 <= index < len(my_list):
    print(my_list[index])
else:
    print("Der angegebene Index ist außerhalb des Bereichs")

6.8 TypeError: Falscher Typ für Funktionsargumente

def add_numbers(a: int, b: int):
    return a + b

print(add_numbers(10, "20"))  # TypeError

Lösung

def add_numbers(a, b):
    if isinstance(a, (int, float)) and isinstance(b, (int, float)):
        return a + b
    else:
        return "Bitte geben Sie Zahlen ein"

print(add_numbers(10, "20"))  # "Bitte geben Sie Zahlen ein"

6.9 Zusammenfassung

Beim Casting (Typumwandlung) in Python sind die folgenden Fehler häufig, daher ist es wichtig, geeignete Maßnahmen zu ergreifen.

FehlerUrsacheVermeidung
ValueErrorUngültige Werte umwandelnMit isdigit() prüfen
TypeErrorUngeeignete Operation zwischen TypenMit str() explizit umwandeln
KeyErrorReferenz auf nicht existierenden Dictionary-Schlüsseldict.get() verwenden
AttributeErrorAufruf einer nicht existierenden MethodeMit hasattr() prüfen
ZeroDivisionErrorDivision durch NullMit if denominator != 0 vermeiden
IndexErrorZugriff außerhalb des ListenbereichsMit if index < len(list) prüfen

7. [Praxis] Praktische Anwendung von Typumwandlungen in Python | Mit Code-Beispielen

7.1 Benutzereingabe in eine Zahl umwandeln und berechnen

age = input("Bitte geben Sie Ihr Alter ein: ")  # Die Benutzereingabe ist vom Typ str
if age.isdigit():  # Überprüfen, ob es sich um eine Zahl handelt
    age = int(age)  # In eine Ganzzahl umwandeln
    print(f"In 10 Jahren werden Sie {age + 10} Jahre alt sein.")
else:
    print("Bitte geben Sie eine Zahl ein.")

7.2 Listenelemente in Strings umwandeln und verknüpfen

numbers = [10, 20, 30, 40]
str_numbers = [str(num) for num in numbers]  # Jedes Element in einen String umwandeln
result = ", ".join(str_numbers)
print(result)  # "10, 20, 30, 40"

7.3 Typumwandlung bei der Verarbeitung von CSV-Daten

csv_data = [
    ["Alice", "25", "170.5"],
    ["Bob", "30", "180.2"],
]

for row in csv_data:
    name = row[0]
    age = int(row[1])  # Alter in eine Ganzzahl umwandeln
    height = float(row[2])  # Größe in eine Gleitkommazahl umwandeln
    print(f"{name} ist {age} Jahre alt und hat eine Größe von {height} cm.")

7.4 Typumwandlung bei JSON-Daten

import json

json_str = '{"name": "Alice", "age": "25", "height": "170.5"}'
data = json.loads(json_str)

data["age"] = int(data["age"])
data["height"] = float(data["height"])

print(data)  # {'name': 'Alice', 'age': 25, 'height': 170.5}

7.5 Dictionary-Schlüssel als Zahlen behandeln

data = {"1": "apple", "2": "banana", "3": "cherry"}

new_data = {int(k): v for k, v in data.items()}
print(new_data)  # {1: 'apple', 2: 'banana', 3: 'cherry'}

7.6 Berechnungsergebnis auf Ganzzahl runden

num = 3.75

# Runden
rounded_num = round(num)
print(rounded_num)  # 4

# Abschneiden
truncated_num = int(num)
print(truncated_num)  # 3

7.7 Boolesche Werte als Zahlen behandeln

print(int(True))  # 1
print(int(False))  # 0

7.8 Zusammenfassung

Durch die angemessene Verwendung von Typumwandlungen in Python wird die Datenverarbeitung reibungslos. Insbesondere ist die Typumwandlung in den folgenden Fällen wichtig.

AnwendungsfälleTypumwandlungsmethode
Verarbeitung von Benutzereingabenint() oder float()
Umwandlung von Listen-Daten in Strings[str(x) for x in list]
Typumwandlung bei CSV- oder JSON-Datenint(), float()
Umwandlung der Dictionary-Schlüssel in Zahlen{int(k): v for k, v in dict.items()}
Runden des Berechnungsergebnisses auf Ganzzahlround() oder int()
Verwendung von Booleschen Werten als Zahlenint(True) → 1, int(False) → 0

8. Häufige Fragen und Lösungen zu Typumwandlungen in Python [FAQ]

8.1 Bedeuten Typumwandlung und Typkonvertierung dasselbe?

Ja, grundsätzlich werden Typumwandlung (Cast) und Typkonvertierung (Type Conversion) mit derselben Bedeutung verwendet.
Allerdings bezieht sich der Begriff „Typumwandlung“ oft besonders auf „explizite Typkonvertierung (Explizite Type Conversion)“.

8.2 Ist eine Typumwandlung zwischen allen Datentypen möglich?

Nein, eine Typumwandlung ist nicht zwischen allen Datentypen möglich. Schauen wir uns Beispiele für Fälle, in denen eine Typkonvertierung möglich und nicht möglich ist.

✔ Beispiele für mögliche Typumwandlungen

print(int("10"))  # 10
print(float("3.14"))  # 3.14
print(str(100))  # "100"
print(list("abc"))  # ['a', 'b', 'c']

❌ Beispiele für unmögliche Typumwandlungen (Fehler)

print(int("abc"))  # ValueError
print(float("hello"))  # ValueError
print(int([1, 2, 3]))  # TypeError

8.3 Sollte man implizite Typkonvertierungen vermeiden?

Nein, implizite Typkonvertierungen in Python sind in geeigneten Situationen sehr praktisch, aber unbeabsichtigte Typkonvertierungen können die Ursache für Bugs werden.

num_int = 10
num_float = 2.5
result = num_int + num_float  # int + float → float
print(result, type(result))  # 12.5 <class 'float'>

8.4 Welche Fehler treten auf, wenn man Typumwandlungen falsch durchführt?

Bei fehlgeschlagenen Typumwandlungen treten hauptsächlich die folgenden 3 Fehler auf.

FehlerUrsacheBeispiel
ValueErrorUngültigen Wert konvertierenint("abc")
TypeErrorUng geeignete Typen operieren10 + "5"
AttributeErrorNicht existierende Methode verwenden10.append(5)

Wie man Fehler vermeidet

value = "abc"

if value.isdigit():
    num = int(value)
else:
    print("Kann nicht in eine Zahl umgewandelt werden")

8.5 Was ist der Unterschied zwischen isinstance() und Typumwandlung?

isinstance() ist eine Funktion zum Überprüfen des Typs einer Variable und unterscheidet sich von Typumwandlung (Typkonvertierung).

num = 10
print(isinstance(num, int))  # True
print(isinstance(num, float))  # False

8.6 Wie wandelt man Benutzereingaben sicher um?

Benutzereingaben erfolgen über input(), wodurch alles zu Strings (str) wird.
Um Fehler zu vermeiden, sollte man Ausnahmetreatment (try-except) für die Typumwandlung verwenden.

while True:
    user_input = input("Bitte geben Sie eine Ganzzahl ein: ")

    try:
        num = int(user_input)
        break
    except ValueError:
        print("Ungültige Eingabe. Bitte geben Sie eine Ganzzahl ein.")

print(f"Eingegebener Wert: {num}")

8.7 Zusammenfassung

Wir haben häufige Fragen und Lösungen zu Typumwandlungen in Python erläutert.

FrageLösung
Unterschied zwischen Typumwandlung und Typkonvertierung?Grundsätzlich dieselbe Bedeutung, aber „Typumwandlung“ bezieht sich oft auf explizite Konvertierung
Typumwandlung zwischen allen Datentypen möglich?Nicht immer (z. B. int("abc") verursacht einen Fehler)
Sollte man implizite Typkonvertierungen vermeiden?Bei richtiger Verwendung praktisch, aber unbeabsichtigte Konvertierungen verursachen Bugs
Unterschied zwischen isinstance() und Typumwandlung?isinstance() überprüft den Typ, Typumwandlung konvertiert ihn
Sichere Methode für Typkonvertierung?Mit try-except kann man Fehler vermeiden

9. Zusammenfassung | Code-Beispiele, die Sie sofort ausprobieren können

9.1 Die Wichtigkeit des Castings in Python

Das Casting (Typumwandlung) ist in der Python-Programmierung eine grundlegende Technik, um Daten angemessen zu handhaben.
Es wird hauptsächlich in den folgenden Situationen verwendet.

Die Integrität des Datentyps wahrenBerechnungen zwischen unterschiedlichen Datentypen ermöglichenFehler verhindern

9.2 Grundlagen des Castings (Typumwandlung) in Python

In Python können Datentypen explizit mit eingebauten Funktionen umgewandelt werden.

KonvertierungsfunktionBeschreibungBeispiel
int(x)In Ganzzahl umwandelnint("100")100
float(x)In Gleitkommazahl umwandelnfloat("3.14")3.14
str(x)In String umwandelnstr(100)"100"
list(x)In Liste umwandelnlist((1, 2, 3))[1, 2, 3]
tuple(x)In Tupel umwandelntuple([1, 2, 3])(1, 2, 3)
set(x)In Set umwandelnset([1, 1, 2]){1, 2}
dict(x)In Dictionary umwandelndict([(1, 'a'), (2, 'b')]){1: 'a', 2: 'b'}

9.3 Implizite Typumwandlung in Python

# Ganzzahl + Gleitkommazahl → In Gleitkommazahl umwandeln
result = 10 + 2.5
print(result, type(result))  # 12.5 <class 'float'>

# Boolean-Werte als Ganzzahlen behandeln
print(True + 1)  # 2
print(False + 5)  # 5

9.4 Häufig auftretende Fehler beim Casting und Maßnahmen

FehlerUrsacheVermeidung
ValueErrorUngültige Werte-TypumwandlungMit isdigit() numerische Überprüfung
TypeErrorUngeeignete Typen-OperationExplizit mit str() umwandeln
KeyErrorReferenz auf nicht existierenden Dictionary-Schlüsseldict.get() verwenden
AttributeErrorAufruf nicht existierender MethodeMit hasattr() prüfen

Beispiel für sicheres Casting

user_input = "100a"

try:
    num = int(user_input)  # In Zahl umwandeln
    print(f"Umwandlung erfolgreich: {num}")
except ValueError:
    print("Ungültige Eingabe. Bitte geben Sie eine Zahl ein.")

9.5 Praktischer Code: Casting in Python nutzen

while True:
    user_input = input("Bitte geben Sie Ihr Alter ein (nur Ganzzahlen): ")

    if user_input.isdigit():  # Eingabe auf numerisch prüfen
        age = int(user_input)
        print(f"Das Alter in 10 Jahren ist {age + 10} Jahre.")
        break
    else:
        print("Ungültige Eingabe. Bitte geben Sie eine Ganzzahl ein.")

9.6 Best Practices für Casting

Datentyp im Voraus prüfenFehlerbehandlung implementierenAngemessene Typumwandlungsfunktionen verwendenNicht zu sehr auf implizite Typumwandlung angewiesen sein

9.7 Zusammenfassung und Punkte für zukünftiges Lernen

In diesem Artikel wurden folgende Inhalte erläutert.

Grundlagen des Castings in PythonExplizite Typumwandlung (int(), float(), str() usw.)Implizite Typumwandlung (automatische Umwandlung in Python)Häufige Fehler beim Casting und deren MaßnahmenPraktische Beispiele für die Nutzung von CastingUm die Programmierung in Python effizienter zu gestalten, probieren Sie bitte aus, indem Sie tatsächlich Code schreiben!🚀

年収訴求