Python으로 재정적 적합성을 결정하는 데 도움이 되는 모기지 계산기: OOP 접근 방식

소개



전체 가격을 선불로 지불하지 않고 주택, 토지 또는 기타 유형의 부동산을 기꺼이 구매하려는 경우 은행이나 기타 기관에서 돈을 빌리는 것을 고려했을 수 있습니다.

모기지는 부동산 구입 자금을 마련하기 위한 일종의 대출입니다. 때로는 부동산 소유자가 모기지를 사용하여 자금을 조달할 수도 있습니다. 차용인은 대출금이 지불될 수 있도록 부동산을 담보로 제공합니다.

차용인에 대한 모기지 불이행의 결과 중 하나는 재산을 잃는 것입니다. 한편, 대금업자는 부채를 회수하기 위해 재산을 압류하고 매각하기 위한 절차를 따라야 합니다.

즉, 사전에 모기지 프로그램의 재정적 적합성을 평가하는 것은 대출 기관과 차용인에게 매우 중요합니다. 잠재적인 차용인은 자신이 감당할 수 있는 부동산의 가치를 확인하고 다양한 조건과 이자율을 테스트할 수 있습니다. 대출 기관은 계획이 실행 가능한지 여부를 확인할 수 있습니다.

여러 유형의 모기지가 있음에도 불구하고 대출은 대출 기간 동안 잔액을 0으로 지불함으로써 만족됩니다. 정기적금은 원금과 이자로 나뉘며 세금, 수수료, 보험료 등의 기타 비용이 포함될 수 있습니다.

프로그램



이 계산기를 구현하는 한 가지 방법은 동일한 템플릿을 사용하여 여러 개체를 만들기 위해 프로그램을 일부 코드와 데이터가 있는 '영역'으로 분할할 수 있는 클래스를 사용하는 것입니다.

이것은 고정 금리 모기지를 사용하여 모기지 계산의 주요 변수인 대출 기간과 월 지불액을 대출 원금과 이자율과 함께 추정하는 Python으로 작성된 기본 터미널 프로그램입니다.

즉시, 원금 및 연간 이자율은 사용자가 제공하며 모기지 클래스의 속성으로 저장됩니다. 이는 월 금액 미적분과 기간 미적분 모두에 대해 동일하게 유지되기 때문입니다.

class Mortgage:
    def __init__(self):
        self.principal = pyip.inputFloat("Type loan's principal: ")
        self.interest_rate = pyip.inputFloat("Type yearly interest rate: ")
        self.interest_rate = self.interest_rate / 100 / 12  # yearly percentage rate divided by 12



Mortgage 클래스 내부에 정의된 메서드는 관련된 미적분학을 담당하며 사용자 옵션에 따라 실행됩니다. 월별 지불.

 def monthly_amount(self):
        self.yearly_term = pyip.inputInt("Type yearly term: ")
        self.yearly_term *= 12 #number of monthly payments
        payment = ((self.interest_rate * self.principal) / ((1 - ((1 + (self.interest_rate)) ** (-self.yearly_term)))))
        return f'Monthly amount payment for ${self.principal:6.2f} in {self.yearly_term} months: ${payment:6.2f}'

    def term(self):
        self.payment = pyip.inputFloat("Type the monthly amount: $")
        term = 0
        balance = self.principal
        while balance > 0:
            balance = balance + (self.interest_rate * balance) - self.payment
            term += 1
        return f"The loan's principal ${self.principal} would take {term} months to be paid."


스크립트의 끝에서 클래스의 인스턴스가 생성되고 메뉴가 프롬프트됩니다.

mortgage = Mortgage()
print("Choose '1' for monthly amount, '2' for loan's term(years), or '3' to exit.")
choice = pyip.inputMenu(choices=['monthly amount', "loan's term", "quit"], numbered=True)
print('Your choice:', choice)
if choice == 'monthly amount':
    print('=' * (len(mes) + 10))
    print(mortgage.monthly_amount())
    print('=' * (len(mes) + 10))
elif choice == "loan's term":
    print('=' * (len(mes) + 10))
    print(mortgage.term())
    print('=' * (len(mes) + 10))


스크립트 시작 부분에서 pyip로 가져온 모듈 pyinputplus는 입력 유효성 검사에 사용되었습니다.

스크립트가 터미널에서 실행되면 화면의 결과는 다음과 같습니다.



GitHub의 코드 링크:
https://github.com/ElianeSato/CS_101

좋은 웹페이지 즐겨찾기