Final = P * ((1 + (r / n)) ** (n * t))) TypError: nicht unterstützter Operanden Typ (s) für /: 'str' und 'int'

Ich bin neu in Python (läuft Python 3), habe überall gesucht und immer noch daran geklebt. Ich verstehe, dass ich eine Saite habe, aber ich muss es in eine Ganzzahl als endgültige Antwort bekommen. Unten ist der Code, den ich eingegeben habe, um es auszuprobieren. Ich stecke auf dem Fehler, den ich bekomme. Dies ist für eine zusammengesetzte Zinsrechner, wo der Benutzer muss die wichtigsten, jährlichen Zinssatz eingeben, wie oft es zusammengesetzt ist, und das Jahr (s). Ich habe einige Recherchen gemacht und bemerkt, dass ich ('inf') für p, n und r als eine Aussage verwenden kann, die entweder große oder kleine Zahlen sein kann. Grundsätzlich kann der Benutzer eine beliebige Nummer eingeben.

P = 10000 n = 12 r = 0.08 p = int(input("Enter starting principle please. ")) n = int(input("Enter Compound intrest rate.(daily, monthly, quarterly, half-year, yearly) ")) r = input("Enter annual interest amount. (decimal) ") t = int(input("Enter the amount of years. ")) final = P * (((1 + (r/n)) ** (n*t))) print ("The final amount after", p, "years is", final) 

Fehler:

 Enter starting principle please. 75000 Enter Compound intrest rate.(daily, monthly, quarterly, half-year, yearly) 12 Enter annual interest amount. (decimal) 0.03 Enter the amount of years. 15 Traceback (most recent call last): File "C:\Users\Joshua\AppData\Local\Programs\Python\Python35-32\Program Five.py", line 10, in <module> final = P * (((1 + (r/n)) ** (n*t))) TypeError: unsupported operand type(s) for /: 'str' and 'int' 

Dies ist mein erstes Mal mit dieser Seite, wenn ich irgendwelche Informationen ausgelassen habe, lass es mich wissen. Ich bin offen für alle Vorschläge, die mir helfen, dieses Problem zu beheben.

  Edit 

Entschuldigung für die Verzögerung. Okay, ich glaube, ich habe es richtig gearbeitet, um von @Rafael Cardoso Empfehlung von Stop und Think zu gehen. Danke für das.

 P = 10000 n = 12 r = 0.08 p = int(input("Enter starting principle please. ")) n = int(input("Enter Compound intrest rate.(daily, monthly, quarterly, half-year, yearly) ")) r = float(input("Enter annual interest amount. (decimal) ")) t = int(input("Enter the amount of years. ")) final = P * (((1 + (r/n)) ** (n*t))) print ("The final amount after", p, "years is", final) 

Wenn ich es laufe, erscheinen keine Fehler. Ich habe herausgefunden, nachdem ich eine Verschnaufpause gemacht habe, dass die ('inf') das Problem verursacht hat, wenn ich p, n, r mit was da geht, funktioniert es ohne Probleme.

Nochmals vielen Dank!

  • "TypeError: 'function' Objekt unterstützt keine Positionszuordnung"
  • TypeError - Translate nimmt ein Argument (2 gegeben) Python
  • 'TypeError: ufunc ...' bei Verwendung von + = auf numpy Arrays
  • TypeError 'x' Objekt hat kein Attribut '__getitem__'
  • 'Int' Objekt ist nicht iterable, wenn ich nicht versuchen zu iterieren
  • TypeError: String-Indizes müssen Integer sein, nicht Str auf Python Dictionary
  • Python 3.2 TypeError: nicht unterstützte Operanden für%: 'NoneType' und 'str'
  • "ValueError: kann Palettenbilder nicht filtern" während der Pytesseract-Konvertierung
  • 2 Solutions collect form web for “Final = P * ((1 + (r / n)) ** (n * t))) TypError: nicht unterstützter Operanden Typ (s) für /: 'str' und 'int'”

    Nach dem Stacktrace ist r ein str . Du solltest nur mit Zahlen arbeiten, also um die Operation zu machen, um r zu float (wie es mit Dezimalzahlen umgeht)

     r = float(input("Enter annual interest amount. (decimal) ")) 

    Bearbeiten

    Ok, lass uns aufhören und denken. Wenn Sie python 3 , speichert die Eingabefunktion den eingegebenen Wert als String (dh als Text). Sie wollen, dass sie Zahlen sind.

    Also musst du alles in Zahlen umwandeln, damit du in der Lage bist zu vermehren, zu teilen usw. Zum Beispiel bedeutet was "a"/"b" ? Und was ist mit "a1"/"b2" ? Oder sogar "1"/"2" ? Sie machen keinen Sinn. Allerdings ist 1/2 sinnvoll. Der Unterschied ist, dass wir mit Text in den ersten 3 Beispielen und mit Zahlen im letzten Beispiel zu tun haben.

    Um es zu funktionieren, solltest du alles entweder ins int umwandeln oder float . Diese types sind Zahlen, und Sie können mathematische Operationen mit ihnen ohne Sorgen machen.

    Sie können das Modul decimal :

     import decimal r = decimal.Decimal(input("Enter annual interest amount. (decimal) ")) 
    Python ist die beste Programmiersprache der Welt.