2017-03-16 2 views
-1

私はpythonを初めて使いました。自分のやり方をMIT OCW 6.001で学び、Pythonでのコンピュータサイエンスとプログラミングの紹介。住宅ローンを確保するために収入の一部を計算するスクリプトを作成する必要があります。私は二分法を使用して、その部分を見つけ出しておく必要があります。スクリプトを実行すると、私の関数 'savings'が0の位置引数を取るが、1が与えられたことについて、怒っているテキストがたくさんある。私はそれが何を意味するのか分かりません。助けてください!住宅ローンの貯蓄率を計算しようとしています

は、ここでは、コードです:

""" 
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

私は、インタプリタで関数を使って遊んで、それらを把握することをお勧めします。 – Denziloe

答えて

1

エラーメッセージは正確に正しいです:あなたは引数を取りませんが、引数(どちらかhighまたはguess)とそれを呼び出すためにsavingsを定義しました。

1

貯蓄関数に引数がないため、エラーが発生しています。ここでの機能がどのように動作するかです:

# 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.') 

これはあなたのエラーはどこから来ているです。この特定のコードスニペットに基づいて、functionの節約を呼び出し、1つの変数を与えます。

ただし、引数を取らないように節約を明確に定義します。

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

は、この問題を解決するために、私はまた、関数名と引数を含む括弧の間にスペースがないことを指摘したい

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

の線に沿って何かをする必要があります。

インタープリタで遊ぶことをお勧めします。これにより、機能の仕組みや呼び出し方法を理解できるようになります。これを行うには、viaコマンドラインでpythonを実行します。 pythonなどの単純なものをadd(2, 2)のように実行します。コマンドラインでエラーが発生した場合は、Pythonをコマンドラインに置く必要があります(これを行う方法については、YouTubeのビデオがたくさんあります)。

その後、対話モードでスクリプトを実行して、機能を使いこなすことができます。これを行うには、python -i yourScriptName.pyを実行します。

関連する問題