私はPythonでの新しいプログラミングです。最低の支払い (10 から始まる) を取得し、残りの残高 (12 か月の支払い後) を返す関数を作成しようとしています。
関数の外では、関数を呼び出して残高がゼロかゼロ未満かをチェックするループを使用しています。そうでない場合は、最低支払額を +10 ドル増やして、関数を再度呼び出します。残高がゼロまたはゼロ未満の場合、最も低い支払いを出力します。
理論的には、出力は次のようになります。
テスト ケース 1:
balance = 3329
annualInterestRate = 0.2
Result Your Code Should Generate:
******Lowest Payment: 310******
Test Case 2:
balance = 4773
annualInterestRate = 0.2
Result Your Code Should Generate:
**最低支払額: 440* *
Test Case 3:
balance = 3926
annualInterestRate = 0.2
Result Your Code Should Generate:
**最低支払額: 360* *
これまでのところ、これは私が持っているものです:
balance = 100
annualInterestRate = 0.2
per_month = ( annualInterestRate / 12 )
# Answer is 0.0166666 but I need it to be 0.01, so figured out to convert to string then to float, not the most elegant , but practical. :)
convert_to_str = str(per_month)[:4]
per_month = float(convert_to_str)
lowest_payment = 0
def main():
i = 0
while i < 11:
global balance
global lowest_payment
global per_month
balance = balance - lowest_payment
balance = ((balance * per_month) + balance)
i = i +1
#print (balance)
main()
if balance <= 0 or balance == 0:
print "Lowest Payment: " + str(lowest_payment)
else:
lowest_payment = lowest_payment + 10
main()
問題は、それが私の機能を実行していないことであり、ループをもう一度繰り返します。if ループと while ループを試してみました。私のwhileループの下で、無限ループを与えます:
while balance >= 0 or balance != 0:
lowest_payment = lowest_payment + 10
main()
if balance <= 0:
print "Lowest Payment: " + str(lowest_payment)
よろしくお願いいたします。