„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie behebe ich die Fehler „TypeError: Nicht unterstützte Operandentypen für -: \'str\' und \'int\'\“?

Wie behebe ich die Fehler „TypeError: Nicht unterstützte Operandentypen für -: \'str\' und \'int\'\“?

Veröffentlicht am 09.11.2024
Durchsuche:798

How to Resolve \

"Lösen des TypeError: Nicht unterstützte Operandentypen für -: 'str' und 'int'"

Beim Codierungsversuch In Python kommt es nicht selten zu Fehlern wie „TypeError: nicht unterstützte Operandentypen für -: ‚str‘ und ‚int‘“. Fehler. Dieser Fehler tritt normalerweise auf, wenn versucht wird, mathematische Operationen an unterschiedlichen Datentypen durchzuführen, beispielsweise das Subtrahieren einer Ganzzahl von einer Zeichenfolge.

Um diesen Fehler zu verstehen, untersuchen wir den Code, der zu ihm geführt hat:

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)

Das Problem liegt hier in der Eingabefunktion, die sowohl für Text als auch für Num eine Zeichenfolge zurückgibt. Während der Code versucht, eine Ganzzahl (s - 1) von einer Zeichenfolge (num) zu subtrahieren, führt dies zu dem Fehler.

Lösung 1: Konvertieren Sie die Eingabe

Eins Die Lösung besteht darin, die Eingabe von einer Zeichenfolge in eine Ganzzahl umzuwandeln, bevor mathematische Operationen ausgeführt werden. Dies kann mit der Funktion int() erfolgen:

num = int(input("How many times: "))

Durch die Konvertierung von num in eine Ganzzahl können wir sicherstellen Kompatibilität für mathematische Operationen mit s.

Lösung 2: Alternative Iteration verwenden

Anstelle manuell Um die Indizes im Auge zu behalten, sollten Sie einen eher pythonischen Ansatz für die Iteration in Betracht ziehen:

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)

Hier verarbeitet die for-Schleife mit range(n) die Iteration effektiv.

API-Überlegungen

Der Fehler auch hebt potenzielle Probleme mit dem API-Design hervor. Es kann intuitiver sein, wenn Text die Zeichenfolge und Num die Häufigkeit darstellt. In diesem Fall kann die API entsprechend geändert werden.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729316118 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3