目次
1. Einführung
Beim Programmieren in Python ist die Typkonvertierung von Daten eine sehr wichtige Technik. Insbesondere ist die Fähigkeit, Strings und Zahlen gegenseitig zu konvertieren, für die Eingabe und Ausgabe von Daten sowie für Berechnungsprozesse unerlässlich. Zum Beispiel treten Szenarien häufig auf, in denen eine vom Benutzer in ein Formular eingegebene Zeichenkette als Zahl berechnet wird oder das Ergebnis einer Berechnung als Zeichenkette für die Anzeige formatiert wird. Allerdings kann das Mischen von Daten unterschiedlicher Typen zu Fehlern führen, weshalb Anfänger in Python Vorsicht walten lassen sollten. In diesem Artikel stellen wir die Methoden zur Konvertierung von „String zu Zahl“ und „Zahl zu String“ in Python vor und erläutern detailliert das Fehlerhandling sowie die Behandlung spezieller Fälle zusammen mit praktischen Beispielen. Es wäre schön, wenn dies eine Hilfe wäre, um Fähigkeiten vom grundlegenden bis zum fortgeschrittenen Programmieren in Python zu erwerben. Im nächsten Abschnitt erklären wir detailliert die grundlegenden Methoden zur Typkonvertierung in Python.2. Grundlegende Typkonvertierung in Python
In Python werden direkte Operationen oft eingeschränkt, wenn die Datentypen unterschiedlich sind, und es ist notwendig, Daten zwischen verschiedenen Typen zu konvertieren. Indem Sie verstehen, wie man Strings in Zahlen konvertiert oder umgekehrt, können Sie flexibleren und fehlerärmeren Code schreiben. In diesem Abschnitt wird die grundlegende Typkonvertierung in Python mit „int()“ und „float()“ erläutert.Konvertierung zu Ganzzahlen
Wenn eine Zahl als String eingegeben wird, müssen Sie diesen String zunächst in eine Ganzzahl oder eine Gleitkommazahl konvertieren, um numerische Berechnungen in Python durchzuführen. Zum Beispiel konvertieren Sie den String „42“ in die Ganzzahl42
, indem Sie dieint()
-Funktion wie folgt verwenden.str_number = "42"
int_number = int(str_number)
print(int_number) # Ausgabe: 42
So können Sie mit derint()
-Funktion Strings in Ganzzahlen konvertieren. Nach erfolgreicher Konvertierung kann der Wert als Zahl verwendet werden. Beachten Sie, dass bei einem Versuch, einen String mit Dezimalpunkt wie"42.0"
in einen Ganzzahltyp zu konvertieren, ein Fehler auftritt. Für die Konvertierung zu Ganzzahlen sind nur ganzzahlige Werte gültig; bei Dezimalstellen mussfloat()
verwendet werden.Konvertierung zu Gleitkommazahlen
Eine Gleitkommazahl ist ein Typ, der auch den Dezimalteil einer Zahl speichern kann. In Python können Sie einen String in eine Gleitkommazahl mit derfloat()
-Funktion konvertieren. Zum Beispiel verwenden Sie den folgenden Code, um den String „3.14“ in eine Gleitkommazahl zu konvertieren.str_float = "3.14"
float_number = float(str_float)
print(float_number) # Ausgabe: 3.14
So können Sie mit derfloat()
-Funktion Strings in Gleitkommazahlen konvertieren. Darüber hinaus können Strings in wissenschaftlicher Notation mitfloat()
konvertiert werden, und Notationen wie"1.23e-4"
werden unterstützt.str_exp = "1.23e-4"
float_exp = float(str_exp)
print(float_exp) # Ausgabe: 0.000123
Konvertierung von Zahlen zu Strings
Umgekehrt gibt es viele Situationen, in denen Zahlen in Strings konvertiert werden müssen. Zum Beispiel, wenn Sie eine Zahl mit anderen Strings kombinieren und anzeigen möchten. In diesem Fall verwenden Sie diestr()
-Funktion.num = 42
str_num = str(num)
print("Ergebnis der Konvertierung der Zahl zu String: " + str_num) # Ausgabe: Ergebnis der Konvertierung der Zahl zu String: 42
So führt diestr()
-Funktion die Konvertierung von Zahlen zu Strings durch und ermöglicht Operationen mit Strings, die Zahlen enthalten. Sobald Sie die grundlegenden Typkonvertierungen verstanden haben, schauen wir uns als Anwendung Konvertierungsmethoden für andere Zahlensysteme und Vollbreiten-Strings an.
3. Anwendungsbeispiel: Konvertierung in mehrere Basen oder Vollbreiten-Zahlen
Nachdem die grundlegenden Typkonvertierungen in Python verstanden wurden, werden im Folgenden fortgeschrittene Fälle erläutert. In diesem Abschnitt werden die Konvertierungsmethoden für mehrere Basen wie Binär- und Hexadezimalzahlen sowie der Umgang mit Zahlen, die Vollbreiten-Zeichen enthalten, detailliert erklärt.Konvertierung von Binär-, Oktal- und Hexadezimalzahlen
Dieint()
-Funktion in Python kann nicht nur Dezimalzahlen, sondern auch Strings in Binär-, Oktal- und Hexadezimalsystem umwandeln. Dabei wird als zweiter Parameter der Funktion die Basis (das Zahlensystem) angegeben. Zum Beispiel werden Strings in Binär- oder Hexadezimalsystem zu Ganzzahlen wie folgt konvertiert.binary_str = "1010" # Binärstring (2er-Basis)
octal_str = "12" # Oktalstring (8er-Basis)
hex_str = "a" # Hexadezimalstring (16er-Basis)
int_binary = int(binary_str, 2)
int_octal = int(octal_str, 8)
int_hex = int(hex_str, 16)
print(int_binary) # Ausgabe: 10
print(int_octal) # Ausgabe: 10
print(int_hex) # Ausgabe: 10
Auf diese Weise können Binär-, Oktal- und Hexadezimal-Strings mit int()
unter Angabe der jeweiligen Basis zu Ganzzahlen konvertiert werden. Diese Funktion ist besonders nützlich, wenn Daten aus mehreren Zahlensystemen verarbeitet werden müssen.Verarbeitung von Vollbreiten-Zahlen und Sonderzeichen
Bei Benutzereingaben, die Strings mit Vollbreiten-Zahlen oder Sonderzeichen enthalten, kann es zu Fehlern kommen, wenn man sie direkt in Python konvertiert. Insbesondere bei japanischen Zahleingaben, die Vollbreiten-Zeichen mischen, kann Python sie oft nicht richtig verarbeiten, weshalb es empfohlen wird, diereplace()
-Methode zu verwenden, um Vollbreite in Halbbreite umzuwandeln. Das Folgende ist ein Beispiel, wie man einen Vollbreiten-String in Halbbreite umwandelt und dann zu einer Zahl konvertiert.str_num_fullwidth = "12345"
str_num_halfwidth = str_num_fullwidth.translate(str.maketrans('0123456789', '0123456789'))
print(int(str_num_halfwidth)) # Ausgabe: 12345
Mit dieser Methode können auch Zahl-Strings in Vollbreite zu Zahlen konvertiert werden. Wenn auch der Dezimalpunkt in Vollbreite vorliegt, wird er wie folgt zusätzlich konvertiert.str_float_fullwidth = "123.456"
str_float_halfwidth = str_float_fullwidth.translate(str.maketrans('0123456789.', '0123456789.'))
print(float(str_float_halfwidth)) # Ausgabe: 123.456
Konvertierung von Kanji-Zahlen
In Python kann das Unicode-Modul verwendet werden, um einige Kanji-Zahlen zu Zahlen zu konvertieren. Mitunicodedata.numeric()
können Strings wie „1“ oder „100“ zu Gleitkommazahlen umgewandelt werden.import unicodedata
kanji_num = '5'
converted_num = unicodedata.numeric(kanji_num)
print(converted_num) # Ausgabe: 5.0
Allerdings unterstützt es keine Kanji-Zahlen mit mehreren Zeichen (z. B. „15“), daher werden für komplexere Fälle zusätzliche Bibliotheken oder Anpassungen mit regulären Ausdrücken empfohlen. Auf diese Weise bietet Python vielfältige Konvertierungsmethoden auch für Zahl-Strings. Im nächsten Abschnitt werden detailliert Methoden zur Überprüfung, ob Eingabewerte konvertierbar sind, und zur Fehlerbehandlung erläutert.4. Fehlerbehandlung und Eingabevalidierung
In der Datenverarbeitung können Fälle auftreten, in denen Eingabedaten vom Benutzer oder Daten von extern nicht ordnungsgemäß in Zahlen umgewandelt werden können. Daher ist es wichtig, im Voraus zu prüfen, ob die Daten in Zahlen umgewandelt werden können, und bei Fehlern während der Umwandlung eine angemessene Verarbeitung durchzuführen. In diesem Abschnitt erklären wir Methoden zur Validierung der Eingabe und zur Fehlerbehandlung.Zur Überprüfung von Zahlen: isdigit()
und reguläre Ausdrücke
Als Methode, um im Voraus zu prüfen, ob eine Zeichenkette in eine Zahl umgewandelt werden kann, gibt es die Verwendung der isdigit()
-Methode von Python oder regulärer Ausdrücke. isdigit()
gibt True zurück, wenn die Zeichenkette vollständig aus Ziffern besteht, aber False, wenn Dezimalpunkte oder Minuszeichen enthalten sind. Daher ist es effektiv, um nur Ganzzahlen zu prüfen.def is_integer(input_str):
return input_str.isdigit()
# Verwendungsbeispiel
print(is_integer("123")) # Ausgabe: True
print(is_integer("3.14")) # Ausgabe: False
print(is_integer("-123")) # Ausgabe: False
Einerseits ist die Verwendung von regulären Ausdrücken für die Überprüfung von Zahlen, die auch Gleitkommazahlen und negative Zahlen einschließen, bequem. Im folgenden Beispiel ist so eingestellt, dass auch Werte mit „+“ oder „-“ davor oder mit Dezimalpunkt True zurückgeben.import re
def is_numeric(input_str):
return bool(re.match(r'^[+-]?d+(.d+)?$', input_str))
# Verwendungsbeispiel
print(is_numeric("123")) # Ausgabe: True
print(is_numeric("-123.45")) # Ausgabe: True
print(is_numeric("3.14.15")) # Ausgabe: False
print(is_numeric("abc")) # Ausgabe: False
So kann man mit regulären Ausdrücken flexibler prüfen, ob es sich um eine Zahl handelt, was bei der Verarbeitung komplexer Eingabedaten hilfreich ist.Fehlerbehandlung: Umgang mit Ausnahmen
In Python tritt bei der Umwandlung einer Zeichenkette in eine Zahl, wenn die Daten nicht angemessen sind, ein Fehler (ValueError
) auf. Um diesen Fehler abzufangen und die Verarbeitung fortzusetzen, ist es üblich, try-except
-Blöcke zur Ausnahmebehandlung zu verwenden. Im folgenden Beispiel wird, wenn bei der Umwandlung einer Zeichenkette in eine Ganzzahl ein Fehler auftritt, eine angemessene Fehlermeldung angezeigt.def convert_to_int(input_str):
try:
return int(input_str)
except ValueError:
print(f"Fehler: '{input_str}' kann nicht in eine Ganzzahl umgewandelt werden.")
return None
# Verwendungsbeispiel
print(convert_to_int("123")) # Ausgabe: 123
print(convert_to_int("abc")) # Ausgabe: Fehler: 'abc' kann nicht in eine Ganzzahl umgewandelt werden.
So kann durch Hinzufügen der Ausnahmebehandlung der Programmablauf auch bei Fehlern ohne Unterbrechung fortgesetzt werden. Zudem wird das Feedback für den Benutzer klarer, und die Behandlung von Eingabefehlern wird einfacher. Wenn die Validierung der Eingabedaten und die Fehlerbehandlung ordnungsgemäß durchgeführt werden, steigt die Zuverlässigkeit des Codes. Im nächsten Abschnitt schauen wir uns die Methode an, um Elemente einer Liste batchweise umzuwandeln.
5. Methode zur einheitlichen Umwandlung der Elemente einer Liste
Beim Datenverarbeiten kann es notwendig sein, die Elemente einer Liste, die aus Strings bestehen, batchweise in Zahlen umzuwandeln. Zum Beispiel werden CSV-Dateien oder Daten aus externen Quellen oft als Strings gespeichert. In diesem Abschnitt stellen wir die Methode zur batchweisen Umwandlung mit der List Comprehension in Python vor.Batchweise Umwandlung mit List Comprehension
In Python kann man neben der Methode, die Elemente einer Liste mit einer Schleife zu verarbeiten, mit der List Comprehension eine knappe und effiziente Datenumwandlung durchführen. Die List Comprehension ist eine Methode, um für jedes Element einer Liste eine bestimmte Operation auszuführen und eine neue Liste zu generieren. Zum Beispiel, um eine Liste mit numerischen Strings in eine Liste von Ganzzahlen umzuwandeln, verwendet man den folgenden Code.str_list = ["10", "20", "30", "40", "50"]
int_list = [int(i) for i in str_list]
print(int_list) # Ausgabe: [10, 20, 30, 40, 50]
In diesem Beispiel wird durch die List Comprehension [int(i) for i in str_list]
jedes Element in str_list
mit der int()
-Funktion in eine Ganzzahl umgewandelt und eine neue Liste int_list
erstellt. Diese Methode ermöglicht mit kurzem Code die Verarbeitung großer Datenmengen und verbessert die Lesbarkeit und Performance des Codes.Batchweise Umwandlung einer Liste mit Fehlerbehandlung
Wenn die Liste Elemente enthält, die nicht umgewandelt werden können (z. B. Strings oder Sonderzeichen), tritt ein Fehler auf. In diesem Fall kann man Bedingungen oder Ausnahmetehandlung in die List Comprehension einbauen, um Umwandlungsfehler zu vermeiden. Hier ist ein Beispiel, das nur umwandelbare Elemente in Ganzzahlen umwandelt.str_list = ["10", "20", "abc", "30", "40"]
int_list = []
for i in str_list:
try:
int_list.append(int(i))
except ValueError:
print(f"Warnung: '{i}' konnte nicht in eine Ganzzahl umgewandelt werden.")
print(int_list) # Ausgabe: [10, 20, 30, 40]
In diesem Code wird mit dem try-except
-Block versucht, den String in eine Ganzzahl umzuwandeln, und bei Fehlschlag wird eine Fehlermeldung ausgegeben. Durch Hinzufügen nur umwandelbarer Elemente mit der append()
-Methode zu int_list
wird die Verarbeitung fortgesetzt, auch wenn Fehler auftreten, und das Umwandlungsergebnis erhalten. Die batchweise Umwandlung von Listen ist eine sehr nützliche Technik bei der Verarbeitung großer Datenmengen. Im nächsten Abschnitt fassen wir den gesamten Artikel zusammen und ordnen das Gelernte.6. Zusammenfassung
In diesem Artikel haben wir die Methoden zur Konvertierung von «String zu Zahl» und «Zahl zu String» in Python von den Grundlagen bis zu fortgeschrittenen Anwendungen erläutert. Durch das Verständnis der Wichtigkeit der Typkonvertierung in der Datenverarbeitung und der effizienten Durchführungsmethoden erweitert sich der Umfang der Operationen in der Python-Programmierung. Im Folgenden fassen wir die Inhalte jeder Sektion kurz zusammen.Rückblick auf den Artikel
- Einführung
- Wir haben Situationen erläutert, in denen die Konvertierung zwischen Strings und Zahlen notwendig ist. Wir haben die Gründe gezeigt, warum Typkonvertierung in numerischen Berechnungen und Datenanzeigen wichtig ist.
- Grundlegende Typkonvertierung in Python
- Als grundlegende Typkonvertierungsmethoden haben wir gelernt, wie man mit den Funktionen
int()
,float()
undstr()
den Datentyp zwischen Strings und Zahlen ändert.
- Fortgeschrittene Beispiele: Konvertierung von Mehrfachbasen oder Vollbreiten-Zahlen
- Wir haben Methoden zur Konvertierung von Binär-, Oktal- und Hexadezimalzahlen in Ganzzahlen sowie zur Konvertierung von Vollbreiten-Zeichen in Halbbreiten und deren Behandlung als Zahlen vorgestellt. Darüber hinaus haben wir die Methode zur Konvertierung von Kanji-Zahlen in Zahlen mit
unicodedata.numeric()
erläutert.
- Fehlerbehandlung und Validierung der Eingabe
- Wir haben die Möglichkeit von Fehlern bei der Zahlenkonvertierung berücksichtigt und Methoden zur vorherigen Überprüfung, ob es sich um eine Zahl handelt, mit
isdigit()
oder regulären Ausdrücken sowie die Verwendung vontry-except
zur Behandlung von Ausnahmen vorgestellt.
- Methode zur Massenkonvertierung von Listenelementen
- Wir haben die Methode zur Massenkonvertierung mit List Comprehension gelernt, die Behandlung von Fehlern bei Auftreten und Fähigkeiten erworben, um effizient zu verarbeiten, auch wenn die Datenmenge groß ist.