Course
Wie man in Python eine Zeichenkette in eine ganze Zahl umwandelt
Eines der häufigsten Hindernisse in Python, besonders für Anfänger, sind Datentypfehler. Ein sehr häufiger Datentypfehler tritt vor allem dann auf, wenn Zahlen als Zeichenketten formatiert werden, was zu falschen Berechnungen, falschen Erkenntnissen oder regelrechten Fehlermeldungen führt. In diesem Tutorial zeige ich dir, wie du mit diesen Fehlern umgehen kannst und wie du Python-Strings in Ganzzahlen umwandelst.
Die schnelle Antwort: So konvertierst du einen Python-String in eine ganze Zahl
Wenn du es eilig hast, findest du hier die schnellste Lösung, um einen String in Python in einen numerischen Typ zu konvertieren. Wenn deine Zeichenkette eine ganze Zahl darstellt (z. B. 12
), kannst du die Funktion int()
verwenden, um eine Zeichenkette in eine ganze Zahl umzuwandeln. Wenn deine Zeichenkette eine Dezimalzahl darstellt (z. B. 12.5
), kannst du die Funktion float()
verwenden, um eine Zeichenkette in eine Fließkommazahl umzuwandeln. Beispiele findest du unten:
# Converting a string into an integer
number_str = "10"
number_int = int(number_str)
print(number_int) # Output: 10
# Converting a string into a float
decimal_str = "10.5"
decimal_float = float(decimal_str)
print(decimal_float) # Output: 10.5
Über Datentypen in Python
Python ist eine dynamisch typisierte Sprache mit einer Vielzahl von Datentypen, von Zeichenketten und ganzen Zahlen bis hin zu Gleitkommazahlen und Booleschen Werten. Diese zu verstehen ist entscheidend für eine effektive Programmplanung. Im Folgenden findest du eine nicht erschöpfende Liste von Python-Datentypen:
- String (
str
): Textdaten, die in Anführungszeichen eingeschlossen sind. E.g.,greeting = "Hello, World!"
- Integer (
int
): Ganze Zahlen ohne eine Bruchkomponente. E.g.,age = 25
- Float (
float
): Zahlen mit einem Dezimalpunkt. E.g.,height = 5.9
- Boolean (
bool
): Steht fürTrue
oderFalse
- Liste (
list
): Eine geordnete Sammlung von Elementen, die gemischte Datentypen haben können. Listen sind veränderbar und können geändert werden. Zum Beispiel,colors = ["red", "blue", "green"]
- Wörterbuch (
dict
): Eine Sammlung von Schlüssel-Wert-Paaren, die es dir ermöglicht, Daten mithilfe von Schlüsseln zu speichern und abzurufen. Zum Beispiel,person = {"name": "Alice", "age": 30}
Mehr über Datentypen erfährst du in diesem Tutorial zu Datenstrukturen in Python auf DataCamp.
Warum eine Zeichenkette in eine ganze Zahl umwandeln?
Korrekte Datentypen sind für genaue Berechnungen unerlässlich. Betrachte das folgende Beispiel. Nehmen wir an, wir haben zwei Zahlen 5
und 10
, die Strings sind. Wenn wir sie zusammenzählen, wäre die Antwort 510
, da sie als Zeichenketten behandelt werden, die mit dem +
Operator verkettet werden. Um die genaue Antwort zu erhalten (in diesem Fall 15
), müssten sie vor der Berechnung der Summe in ganze Zahlen umgewandelt werden. Das ist ein einfaches Beispiel, aber stell dir vor, es wird auf einen Datensatz mit Unternehmenseinnahmen angewandt: Falsche Erkenntnisse können hier zu schlechten Geschäftsentscheidungen führen.
# Summing two numbers that are actually strings
'5'+'10'# This returns 510
# Converting them to integers before summing them
int('5') + int('10') # This returns 15
Wie man in Python Strings in Ganzzahlen umwandelt
Bei der Arbeit mit numerischen Daten, die als Zeichenketten formatiert sind, ist es oft notwendig, diese Zeichenketten für Berechnungen oder andere numerische Operationen in ganze Zahlen umzuwandeln. Python bietet mit der Funktion int()
eine unkomplizierte Möglichkeit, dies zu erreichen. Diese Funktion nimmt eine Zeichenkette als Eingabe und gibt ihre ganzzahlige Darstellung zurück, sofern die Zeichenkette eine gültige ganze Zahl darstellt.
# Convert a string to an integer
numeric_string = "42"
converted_integer = int(numeric_string)
print(converted_integer) # Output: 42
Wie man in Python Strings in Fließkommazahlen umwandelt
In Fällen, in denen die Zeichenkette eine Zahl mit einem Dezimalpunkt darstellt, wäre eine Umwandlung in eine Ganzzahl unangemessen und würde zu einem Fehler führen. Stattdessen kannst du diese Zeichenketten mit der Funktion float()
in Python in Fließkommazahlen umwandeln. Die Verwendung von Float-Datentypen ist besonders wichtig, wenn du mit hochpräzisen Daten arbeitest, z. B. mit Finanzdaten oder Sensormessdaten.
# Convert a string to a float
decimal_string = "3.14"
converted_float = float(decimal_string)
print(converted_float) # Output: 3.14
Gemeinsame Probleme
Bei der Umwandlung von Zeichenketten in Zahlen gibt es einige Fallstricke, die zu Fehlern oder unerwarteten Ergebnissen führen können.
Konvertierung nicht-numerischer Zeichenketten
Der Versuch, eine nicht-numerische Zeichenkette wie 'hello world'
in eine Zahl zu konvertieren, führt zu einem Fehler. Wenn du Strings, die nicht in Ganzzahlen umgewandelt werden können, programmatisch abfangen willst, kannst du einen try/except
Block verwenden, um solche Fälle elegant zu behandeln.
try:
invalid_number = int("hello world")
except ValueError:
print("This is not a number.")
Konvertierung von Float-Strings in Integer-Werte
Die direkte Umwandlung einer Zeichenkette, die einen Float repräsentiert, in eine Ganzzahl ergibt ValueError
. Während du eine Zeichenkette, die eine ganze Zahl darstellt, in eine Fließkommazahl umwandeln kannst, ist das Gegenteil nicht möglich. Hier ist ein Beispiel für den Fehler, den du bekommen kannst:
string_decimal = '13.5'
# Convert string_decimal into an integer
int(string_decimal)
# Returns ValueError: invalid literal for int() with base 10: '13.5'
Strings mit unterschiedlichen Basen
Wenn wir bei Zahlen von "Basen" sprechen, beziehen wir uns auf das Nummerierungssystem, in dem die Zahl ausgedrückt wird. Die häufigste Basis ist 10, auch bekannt als Dezimalsystem, das wir im Alltag verwenden. Sie besteht aus 10 Ziffern, von 0 bis 9.
Es gibt jedoch auch andere Grundlagen, die in verschiedenen Bereichen verwendet werden, insbesondere in der Informatik. Zum Beispiel:
- Binär (Basis 2): Verwendet nur 0 und 1. Es ist die grundlegende Sprache der Computer.
- Oktal (Basis 8): Verwendet Ziffern von 0 bis 7. Sie ist heute weniger verbreitet, wurde aber in älteren Computersystemen verwendet.
- Hexadezimal (Basis 16): Verwendet Ziffern von 0 bis 9 und Buchstaben von A bis F (wobei A=10 und F=15). Sie wird häufig in der Informatik verwendet, insbesondere für Farbcodes im Webdesign und für Speicheradressen.
Wenn du eine Zeichenkette hast, die eine Zahl in einer anderen Basis als 10 darstellt, musst du die Basis angeben, damit Python sie richtig interpretieren kann. Hier ist ein Beispiel mit einer hexadezimalen Zahl:
# Convert a hexadecimal string to an integer
hex_string = "1A" # In base 16, 1A represents the decimal number 26
converted_int = int(hex_string, 16) # The '16' tells Python it's in base 16
print(converted_int) # Output: 26
Schlussgedanken
Der Umgang mit Datentypen und Konvertierungen in Python ist eine grundlegende Fähigkeit für die Programmierung. Wenn du weißt, wie du Strings genau in Ganzzahlen und Fließkommazahlen umwandelst, kannst du häufige Fallstricke vermeiden und sicherstellen, dass deine Datenmanipulation korrekt ist. Wenn du mehr über Python wissen willst, schau dir unseren Python-Spickzettel für Anfänger, unseren Leitfaden zum Erlernen von Python und unsere Python-Kurse an.
Adel ist Data Science Educator, Speaker und Evangelist bei DataCamp, wo er verschiedene Kurse und Live-Trainings zu Datenanalyse, maschinellem Lernen und Data Engineering veröffentlicht hat. Er setzt sich leidenschaftlich für die Verbreitung von Datenkenntnissen und Datenkompetenz in Organisationen und an der Schnittstelle zwischen Technologie und Gesellschaft ein. Er hat einen MSc in Data Science und Business Analytics. In seiner Freizeit ist er mit seinem Kater Louis unterwegs.
Setze deine Python-Lernreise heute fort!
Course
Intermediate Python
Track
Datenmanipulation
Der Blog