PR

Pythonで借金返済にかかる期間を計算する方法を解説

この記事で解決できる悩み
  • Pythonで借金返済にかかる期間を計算したい

こんな悩みを解決します。

いのうえ
いのうえ

こんにちは、学生フリーランスエンジニアのいのうえ(@inouelog)です!

Pythonの基本文法を学んでいると、社会の事柄を使って練習したくなりますよね。

実際、四則演算のプログラムを使って、様々なことが計算できます。

この記事では

Pythonで借金返済にかかる期間を計算する方法

について解説します。

input関数で計算に必要な情報を入力する

input関数は実行すると入力エリアが現れ、文字列や数値を入力でき、それが関数の戻り値となります。

>>> input()
This is a pen.
'This is a pen.'

また、引数に文字列を設定することで、入力エリアにその文字列が現れます。

>>> input('文字を入力してください')
文字を入力してくださいThis is an apple.
'This is an apple.'

Pythonで借金返済にかかる期間を計算するのに必要な情報は、次の4つ。

  • 借金の総額
  • 毎月の返済額
  • ボーナスの総額
  • 利子(年利)

これらはinput関数を使って変数へ値を代入すれば良いですね。

Pythonで借金返済にかかる期間を計算する方法

では、input関数を使いつつ、Pythonで借金返済にかかる期間を計算します。

  1. 利子がない借金の返済
  2. 利子がある借金の返済

の2つの場合に分けて解説します。

簡単のため、ボーナスの総額を12で割り、毎月の支払額に加算して計算します。

利子がない場合

# 借金の総額を定義
debt = int(input('借金の総額はいくらですか?'))
# ボーナスの総額を定義
bonus = int(input('ボーナスの総額はいくらですか?'))
# 毎月の返済額を定義
pay = int(input('毎月の返済額はいくらですか?'))
month_pay = int(pay+bonus/12)

# ボーナスを使わないときの借金返済にかかる期間を計算
months_1 = int(debt/pay)
# ボーナスを使うときの借金返済にかかる期間を計算
months_2 = int(debt/month_pay)

# 借金の総額を出力
print('借金の総額は、{:,}円です。'.format(debt))
# 毎月の返済額を出力
print('毎月の返済額は、ボーナスを使わないとき{:,}円、使うとき{:,}円です。'.format(pay, month_pay))
# ボーナスを使わないときの借金返済にかかる期間を出力
print('ボーナスを使わないと、借金の返済には{}か月かかります。'.format(months_1))
# ボーナスを使うときの借金返済にかかる期間を出力
print('ボーナスを使えば、{}か月で借金返済でき、ボーナスを使わないときと比べて{}か月早いです。'.format(months_2, months_1-months_2))

金額を3桁ずつでカンマで区切りたいときは

{:,}

と書けばOKです。

利子がある場合

ボーナスの使用可否でほとんどコードは変わらないので、ここではボーナスを使うときだけを示します。

# 借金の総額を定義
debt_total = int(input('借金の総額はいくらですか?'))
# ボーナスの総額を定義
bonus = int(input('ボーナスの総額はいくらですか?'))
# 毎月の返済額を定義
pay = int(input('毎月の返済額はいくらですか?'))
month_pay = int(pay+bonus/12)
# 利率を定義
interest = int(input('利率はいくらですか?'))
rate = 1 + interest/12/100

# 借金返済にかかる期間を定義
months = 0
# 利子があるときの借金の返済総額を定義
total_pay = 0
# 計算に使う借金の総額の変数を定義
debt = debt_total

# 借金返済にかかる期間を計算
while debt > month_pay:
    months += 1
    debt = int(debt*rate - month_pay)
    total_pay += month_pay

months += 1
debt = int(debt*rate)
total_pay += debt

# 借金の総額を出力
print('借金の総額は、{:,}円です。'.format(debt_total))
# 毎月の返済額を出力
print('毎月の返済額は、{:,}円です。'.format(month_pay))
# 借金の返済総額と返済にかかる期間を出力
print('利子がかかるので、借金の返済総額は{:,}円になり、返済にかかる期間は{}か月です。'.format(total_pay, months))

while文で、残りの借金の総額が毎月の返済額を超えるときに繰り返し処理をします。

また、次のコードで超えない最後の1か月分を足しています。

months += 1
debt = int(debt*rate)
total_pay += debt

以上、『Pythonで借金返済にかかる期間を計算する方法を解説』でした。