TypeError: Nicht unterstützte Operandentypen für die Subtraktion
In Python können Subtraktionsoperatoren nur zwischen kompatiblen Typen wie Zahlen oder Zeichenfolgen verwendet werden. Beim Versuch, eine Zeichenfolge von einer Ganzzahl zu subtrahieren, tritt jedoch ein Fehler auf.
Originalcode:
<code class="python">def cat_n_times(s, n): while s != 0: print(n) s = s - 1 text = input("What would you like the computer to repeat back to you: ") num = input("How many times: ") cat_n_times(num, text)</code>
Fehler:
TypeError: unsupported operand type(s) for -: 'str' and 'int'
Erklärung:
Die Eingaben im Programm, text und num, sind beide Zeichenfolgen, wie sie mit der Eingabe empfangen wurden. Allerdings versucht die Funktion cat_n_times, eine ganze Zahl (s) von der Zeichenfolge (Text) zu subtrahieren, was zu einem Typfehler führt.
Lösungen:
1 . Eingabe in Ganzzahl umwandeln:
Eine Lösung besteht darin, die Zeichenfolge num mit int():
<code class="python">num = int(input("How many times: "))</code>
2 in eine Ganzzahl umzuwandeln. Verbessertes Funktionsdesign:
Alternativ würde ein besseres Funktionsdesign eine for-Schleife anstelle der manuellen Indexverfolgung verwenden:
<code class="python">def cat_n_times(s, n): for i in range(n): print(s) text = input("What would you like the computer to repeat back to you: ") num = int(input("How many times: ")) cat_n_times(text, num)</code>
Diese Version vermittelt die Absicht der Funktion klarer und Behebt den Fehler, indem num vor der Verwendung in der Schleife in eine Ganzzahl konvertiert wird.
Das obige ist der detaillierte Inhalt vonWie behebe ich Typfehler beim Subtrahieren verschiedener Datentypen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!