Heim  >  Artikel  >  Backend-Entwicklung  >  Wie behebe ich Typfehler beim Subtrahieren verschiedener Datentypen in Python?

Wie behebe ich Typfehler beim Subtrahieren verschiedener Datentypen in Python?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-19 13:37:29900Durchsuche

How to Resolve Type Errors When Subtracting Different Data Types in Python?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn