🐍 Using Python, write a program to calculate the monthly payments of a mortgage at a given interest rate. Also figure out how long it will take the user to pay back the loan. For added complexity, add an option for users to select the compounding interval (Yearly, Bi-Yearly, Quarterly, Monthly, Weekly, Daily)
day_count = 0
remaining = loan
if interval[0].lower()=='d':
while remaining > 0:
day_count += 1
remaining += (interest/100)*remaining
if day_count%30==0:
remaining -= emi
if remaining>=loan:
print('Either lower interest rate or increase EMI')
break
elif interval[0].lower()=='w':
while remaining > 0:
day_count += 1
if day_count%7==0:
remaining += (interest/100)*remaining
if day_count%30==0:
remaining -= emi
if remaining>=loan:
print('Either lower interest rate or increase EMI')
break
elif interval[0].lower()=='m':
while remaining > 0:
day_count += 1
if day_count%30==0:
remaining += (interest/100)*remaining
remaining -= emi
if remaining>=loan:
print('Either lower interest rate or increase EMI')
break
elif interval[0].lower()=='q':
while remaining > 0:
day_count += 1
if day_count%90==0:
remaining += (interest/100)*remaining
if day_count%30==0:
remaining -= emi
if remaining>=loan:
print('Either lower interest rate or increase EMI')
break
print(f'Number of days required to return loan amount: {day_count}')
elif interval[0].lower()=='b':
while remaining > 0:
day_count += 1
if day_count%180==0:
remaining += (interest/100)*remaining
if day_count%30==0:
remaining -= emi
if remaining>=loan:
print('Either lower interest rate or increase EMI')
break
elif interval[0].lower()=='y':
while remaining > 0:
day_count += 1
if day_count%360==0:
remaining += (interest/100)*remaining
if day_count%30==0:
remaining -= emi
if remaining>=loan:
print('Either lower interest rate or increase EMI')
break
else:
print('Incorrect interval chosen.')
if remaining<=0:
return day_count
else:
mainfunc()
def mainfunc():
loan = float(input("Enter Loan Amount: "))
interest = float(input("Enter Interest Percentage: "))
interval = input("Enter Interest Interval (daily, weekly, monthly, quarterly, bi-yearly, yearly): ")
emi = float(input("Enter EMI: "))
print(emicalculator(loan, interest, interval, emi))
if __name__=='__main__':
mainfunc()
Solution
def emicalculator(loan, interest, interval, emi):day_count = 0
remaining = loan
if interval[0].lower()=='d':
while remaining > 0:
day_count += 1
remaining += (interest/100)*remaining
if day_count%30==0:
remaining -= emi
if remaining>=loan:
print('Either lower interest rate or increase EMI')
break
elif interval[0].lower()=='w':
while remaining > 0:
day_count += 1
if day_count%7==0:
remaining += (interest/100)*remaining
if day_count%30==0:
remaining -= emi
if remaining>=loan:
print('Either lower interest rate or increase EMI')
break
elif interval[0].lower()=='m':
while remaining > 0:
day_count += 1
if day_count%30==0:
remaining += (interest/100)*remaining
remaining -= emi
if remaining>=loan:
print('Either lower interest rate or increase EMI')
break
elif interval[0].lower()=='q':
while remaining > 0:
day_count += 1
if day_count%90==0:
remaining += (interest/100)*remaining
if day_count%30==0:
remaining -= emi
if remaining>=loan:
print('Either lower interest rate or increase EMI')
break
print(f'Number of days required to return loan amount: {day_count}')
elif interval[0].lower()=='b':
while remaining > 0:
day_count += 1
if day_count%180==0:
remaining += (interest/100)*remaining
if day_count%30==0:
remaining -= emi
if remaining>=loan:
print('Either lower interest rate or increase EMI')
break
elif interval[0].lower()=='y':
while remaining > 0:
day_count += 1
if day_count%360==0:
remaining += (interest/100)*remaining
if day_count%30==0:
remaining -= emi
if remaining>=loan:
print('Either lower interest rate or increase EMI')
break
else:
print('Incorrect interval chosen.')
if remaining<=0:
return day_count
else:
mainfunc()
def mainfunc():
loan = float(input("Enter Loan Amount: "))
interest = float(input("Enter Interest Percentage: "))
interval = input("Enter Interest Interval (daily, weekly, monthly, quarterly, bi-yearly, yearly): ")
emi = float(input("Enter EMI: "))
print(emicalculator(loan, interest, interval, emi))
if __name__=='__main__':
mainfunc()
Comments
Post a Comment