2017-03-16 7 views
-1

Ich bin neu bei Python. Ich arbeite mich durch das MIT OCW 6.001 Einführung in Informatik und Programmierung in Python. Müssen Sie ein Skript erstellen, das den Teil des Einkommens berechnet, um eine Hypothek zu leisten. Ich muss die Halbierung verwenden, um den Teil zu finden, den ich beiseite legen muss. Wenn ich mein Skript ausführe, bekomme ich eine Menge wütenden Text darüber, wie meine Funktion "Einsparungen" 0 Positionsargumente einnimmt, aber 1 wurde gegeben. Ich weiß nicht, was das bedeutet. Hilfe bitte!Probieren Sie die prozentuale Einsparung für Hypothek zu berechnen

Hier ist der Code:

""" 
Created on Thu Mar 16 12:51:41 2017 

@author: [redacted] 
""" 

num_guesses = int(0) 
current_savings = int(0) 
annual_salary = input('enter your annual salary:') 
r = float(.04) 
raise_pct = float (.07) 
high = pct_saved = float(1.0) 
low = 0 
def savings(): 
    total_savings = 0 
    num_months = 0 
    monthly_salary = int(annual_salary)/12 
    portion_saved = pct_saved*monthly_salary 
    for num_months in range(0,35): 
     num_months += 1 
     total_savings += (current_savings*r)/12 + portion_saved 
     if (num_months%6) == 0 : 
      monthly_salary += monthly_salary*raise_pct 
      portion_saved = monthly_salary*pct_saved 
     return total_savings 
cost = 250000 
epsilon = float(.001) 
guess = (low + high)/2.0 
if savings(high) < cost: 
    num_guesses += 1 
    print ('You cannot afford this house.') 
while abs(savings(guess))-cost >= epsilon: 
    if savings(guess) < cost: 
     low = guess 
    else: 
     high = guess 
    guess = (high + low)/2.0 
    num_guesses += 1 
print ('Number of guesses:', num_guesses) 
print ('Savings percent is near:', pct_saved) 
+1

Ich schlage vor, Sie spielen mit Funktionen im Interpreter, um sie in den Griff zu bekommen. – Denziloe

Antwort

1

Die Fehlermeldung ist genau richtig: Sie savings definiert keine Argumente zu nehmen, aber es mit einem Argument aufrufen (entweder high oder guess).

1

Sie erhalten einen Fehler, weil die Spar-Funktion keine Argumente annimmt. Hier ist, wie Funktionen arbeiten:

# no arguments 
def function(): 
    return 1 

print function() # prints 1 

# one argument 
def function2(arg): 
    return arg 

a = 2 
print function2(a) # prints 2 
0
if savings(high) < cost: 
num_guesses += 1 
print ('You cannot afford this house.') 

Dies ist, wo Ihre Fehler herkommt. Basierend auf diesem speziellen Code-Snippet rufen Sie die function Einsparungen und geben Sie eine Variable.

Sie definieren jedoch eindeutig Einsparungen, um keine Argumente zu nehmen.

def savings(): 
# your other code down here. 

Um dies zu beheben, müssen Sie etwas entlang der Linien von

def savings(amountOfSavings): 
# your other code down here 

ich auch darauf hinweisen wollen, tun, dass es keinen Raum zwischen dem Funktionsnamen und die Klammer, die die Argumente enthalten.

Ich empfehle auch, mit dem Interpreter zu spielen, damit Sie verstehen, wie Funktionen funktionieren und aufgerufen werden. Führen Sie dazu python über die Kommandozeile aus. python und tun einfache Dinge wie add(2, 2). Wenn die Befehlszeile einen Fehler ausspuckt, müssen Sie wahrscheinlich Python in die Befehlszeile einfügen (es gibt viele YouTube-Videos dazu).

Danach können Sie Ihr Skript im interaktiven Modus ausführen, um mit Ihren Funktionen zu spielen. Um dies zu tun, tun Sie python -i yourScriptName.py.

Verwandte Themen