Python-String in Int: So konvertieren Sie einen String in eine Ganzzahl in Python


Im Gegensatz zu vielen anderen Programmiersprachen gibt Python keine implizite Typumwandlung von Ganzzahlen (oder Gleitkommazahlen) in Zeichenfolgen vor, wenn Sie diese zu Zeichenfolgen verketten.

Glücklicherweise verfügt Python über eine praktische integrierte Funktion str(), die das übergebene Argument in ein String-Format konvertiert.

Der falsche Weg, einen String in Python in eine Ganzzahl umzuwandeln

Programmierer aus anderen Programmiersprachen versuchen möglicherweise, die folgende Zeichenfolgenverkettung durchzuführen, was zu einem Fehler führt:

age = 18

string = "Hello, I am " + age + " years old"

Sie können diesen Code auf repl.it ausführen.

Der angezeigte Fehler ist:

Traceback (most recent call last):
  File "python", line 3, in <module>
TypeError: must be str, not int

Hier gibt TypeError: must be str, not int an, dass die Ganzzahl zuerst in eine Zeichenfolge konvertiert werden muss, bevor sie verkettet werden kann.

Der richtige Weg, einen String in Python in eine Ganzzahl umzuwandeln

Hier ist ein einfaches Verkettungsbeispiel:

age = 18

print("Hello, I am " + str(age) + " years old")

# Output
# Hello, I am 18 years old

Sie können diesen Code auf repl.it ausführen.

So drucken Sie 1 2 3 4 5 6 7 8 9 10 mit einer einzelnen Zeichenfolge:

result = ""

for i in range(1, 11):
    result += str(i) + " "

print(result)

# Output
# 1 2 3 4 5 6 7 8 9 10

Sie können den Code auf repl.it ausführen.

Hier ist eine zeilenweise Erklärung, wie der obige Code funktioniert:

  1. Zunächst wird einer leeren Zeichenfolge eine Variable „result“ zugewiesen.
  2. Die for-Schleife wird verwendet, um eine Liste von Zahlen zu durchlaufen.
  3. Diese Zahlenliste wird mit der Bereichsfunktion generiert.
  4. Daher wird range(1,11) eine Liste mit Zahlen von 1 bis 10 generieren.
  5. Bei jeder for-Schleifeniteration nimmt diese „i“-Variable Werte von 1 bis 10 an.
  6. Bei der ersten Iteration, wenn die Variable i=1 ist, konvertiert die Variable [result=result+str(i)+“(Leerzeichen) ”],str(i) das „i“, das ein ganzzahliger Wert ist, in einen Zeichenfolgenwert.
  7. Da i=1, ist bei der ersten Iteration schließlich result=1.
  8. Und der gleiche Prozess geht weiter, bis i=10 und schließlich nach der letzten Iteration result=1 2 3 4 5 6 7 8 9 10.
  9. Wenn wir also schließlich das Ergebnis nach der for-Schleife drucken, lautet die Ausgabe auf der Konsole „1 2 3 4 5 6 7 8 9 10“.

Ich hoffe, dass Sie dies hilfreich fanden. Viel Spaß beim Codieren.