Eingebettete Funktion gibt keine zurück

Meine Funktion gibt None . Ich habe überprüft, um sicherzustellen, dass alle Operationen korrekt sind und dass ich eine return-Anweisung für jede Funktion habe.

 def parameter_function(principal, annual_interest_rate, duration): n = float(duration * 12) if annual_interest_rate == 0: r = float(principal / n) else: r = float(annual_interest_rate / 1200) p = principal return (p, r, n) def monthly_payment_function(p, r, n): monthly_payment = p * ((r * ((1 + r) ** n)) / (((1 + r) ** n) - 1)) result = monthly_payment_function(p, r, n) return result 

  • Aufruf der privaten Funktion innerhalb der gleichen Klasse Python
  • Die Mitte von drei Zahlen finden
  • Lernen Sie Python die harte Weise - Übung 24
  • Wie funktionieren die Python-Operatorfunktionen anders als die Standardoperatorfunktionen?
  • Jemand bitte einen Blick auf meine Python-Syntax? [abgeschlossen]
  • Introspektion der verschachtelten (lokalen) Funktionen einer bestimmten Funktion in Python
  • One Solution collect form web for “Eingebettete Funktion gibt keine zurück”

    monthly_payment_function gibt nichts zurück. Ersetzen Sie monthly_payment= mit return (das ist 'return' gefolgt von einem Leerzeichen).

    Auch hast du eine bedingungslose return vor def monthly_payment_function , was def monthly_payment_function , dass es niemals angerufen wird (streng genommen wird es niemals sogar definiert).

    Auch du bist ziemlich zufällig mischende Einheiten, und deine Variablennamen könnten etwas Hilfe benutzen:

     from __future__ import division # Python 2.x: int/int gives float MONTHS_PER_YEAR = 12 def monthly_payment(principal, pct_per_year, years): months = years * MONTHS_PER_YEAR if pct_per_year == 0: return principal / months else: rate_per_year = pct_per_year / 100. rate_per_month = rate_per_year / MONTHS_PER_YEAR rate_compounded = (1. + rate_per_month) ** months - 1. return principal * rate_per_month * (1. + rate_compounded) / rate_compounded 
    Python ist die beste Programmiersprache der Welt.