Как напечатать вывод функции в дескрипторе Python 3.x - PullRequest
0 голосов
/ 21 октября 2018

Рекомендации, которые мне дали, заключаются в том, что все операции ввода-вывода должны содержаться в основной функции «def main ()». Мне нужны 4 выхода: «Сумма ссуды» и «Количество платежей», которые поступают из входных данных основных функций, покадва выхода, с которыми я борюсь с «Ежемесячный платеж» и «Проценты», рассчитываются вне основной функции.Я попытался использовать return и в дескрипторе печати попытаться сослаться на них, и я получаю сообщение об ошибке, что указанная переменная не определена.Решение, которое я имею, печатает два столбца, один из основной функции, а другой - из одной из функций ссуды.

#libraries
import sys


#Interest is monthly apr --> interest = (rate / 100) / 12
#Monthly Pay formula is apr formula split into variables numerator and denominator

#functions
def small_loan(lend_1, term_1): #lend_1 is loan parameter while term_1 is finance term perameter

    '''monthly payment formula is  A = P * (rate) * ((1 + (rate)) ** term) / ((1 + (rate)) ** term) - 1
    P == lend_x    term == term_x    rate == interest    ***This is for all calculation functions***
    '''

    #mon_pay = numerator / denominator

    if term_1 >= 6 and term_1 <= 12:
        rate = 8
        interest = (rate / 100) / 12
        numerator = lend_1 * interest * ((1 + interest) ** term_1)
        denominator = ((1 + interest) ** term_1) - 1
        mon_pay = numerator / denominator

        print("Monthly Payment: $%3.2f    Interest:%2d percent" % (mon_pay, rate))

    elif term_1 >= 13 and term_1 <= 36:
        rate = 10
        interest = (rate / 100) / 12
        numerator = lend_1 * interest * ((1 + interest) ** term_1)
        denominator = ((1 + interest) ** term_1) - 1
        mon_pay = numerator / denominator

        print("Monthly Payment: $%3.2f    Interest:%2d percent" % (mon_pay, rate))

    elif term_1 >= 37 and term_1 <= 48:
        rate = 12
        interest = (rate / 100) / 12
        numerator = lend_1 * interest * ((1 + interest) ** term_1)
        denominator = ((1 + interest) ** term_1) - 1
        mon_pay = numerator / denominator

        print("Monthly Payment: $%3.2f    Interest:%2d percent" % (mon_pay, rate))

        #func call to loop to continue or end program via sys.exit

    loop()

def med_loan(lend_2, term_2): #lend_2 is the loan perameter while term_2 is the finacial term peramter

    '''monthly payment formula is  A = P * (rate) * ((1 + (rate)) ** term) / ((1 + (rate)) ** term) - 1
    P == lend_x    term == term_x    rate == interest    ***This is for all calculation functions***
    '''

    #mon_pay = numerator / denominator

    if term_2 >= 6 and term_2 <= 12:
        rate = 7
        interest = (rate / 100) / 12
        numerator = lend_2 * interest * ((1 + interest) ** term_2)
        denominator = ((1 + interest) ** term_2) - 1
        mon_pay = numerator / denominator

        print("Monthly Payment: $%3.2f    Interest:%2d percent" % (mon_pay, rate))

    elif term_2 >= 13 and term_2 <= 36:
        rate = 8
        interest = (rate / 100) / 12
        numerator = lend_2 * interest * ((1 + interest) ** term_2)
        denominator = ((1 + interest) ** term_2) - 1
        mon_pay = numerator / denominator

        print("Monthly Payment: $%3.2f    Interest:%2d percent" % (mon_pay, rate))

    elif term_2 >= 37 and term_2 <= 48:
        rate = 6
        interest = (rate / 100) / 12
        numerator = lend_2 * interest * ((1 + interest) ** term_2)
        denominator = ((1 + interest) ** term_2) - 1
        mon_pay = numerator / denominator

        print("Monthly Payment: $%3.2f    Interest:%2d percent" % (mon_pay, rate))

        #func call to loop to continue or end program via sys.exit

    loop()

def large_loan(lend_3, term_3): #lend_3 is the loan perameter while term_3 is the finacial term peramter

    '''monthly payment formula is  A = P * (rate) * ((1 + (rate)) ** term) / ((1 + (rate)) ** term) - 1
    P == lend_x    term == term_x    rate == interest    ***This is for all calculation functions***
    '''

    #mon_pay = numerator / denominator

    if term_3 >= 6 and term_3 <= 12:
        rate = 5
        interest = (rate / 100) / 12
        numerator = lend_2 * interest * ((1 + interest) ** term_2)
        denominator = ((1 + interest) ** term_2) - 1
        mon_pay = numerator / denominator

        print("Monthly Payment: $%3.2f    Interest:%2d percent" % (mon_pay, rate))

    elif term_3 >= 13 and term_3 <= 36:
        rate = 6
        interest = (rate / 100) / 12
        numerator = lend_2 * interest * ((1 + interest) ** term_2)
        denominator = ((1 + interest) ** term_2) - 1
        mon_pay = numerator / denominator

        print("Monthly Payment: $%3.2f    Interest:%2d percent" % (mon_pay, rate))

    elif term_3 >= 37 and term_3 <= 48:
        rate = 7
        interest = (rate / 100) / 12
        numerator = lend_2 * interest * ((1 + interest) ** term_2)
        denominator = ((1 + interest) ** term_2) - 1
        mon_pay = numerator / denominator

        print("Monthly Payment: $%3.2f    Interest:%2d percent" % (mon_pay, rate))

        #func call to loop to continue or end program via sys.exit

    loop()

def loop():

    cont = input("Would you like to continute? 'Y for yes and N for no' ")

    while cont == "Y" or cont == "y":
        main()
    if cont == "N" or cont == "n":
        print("You have chosen to exit the program. Thank you and have a nice day!")
        sys.exit(0)


#main()
def main():

    while True:
        try:
            loan = input("How much money will you be financing? ")
            loan = float(loan)


            if loan < 500:
                print("We do not give our loans less than $500")
                main()

            payment = input("How many monthly payments do you want? ")
            payment = int(payment)
            break

            if payment < 6 and payment > 48:
                print("Sorry we do not finance longer than loan less than 6 months or longer than 48 months")
                main()
        except ValueError:
            print("Please input a numbers only")
            main()

    if loan >= 500 and loan <= 2500:
        print("Loan Amount: $%4.2f    Number of Payments: %2d" % (loan, payment))
        small_loan(loan, payment)

    elif loan >= 2501 and loan <= 10000:
        print("Loan Amount: $%4.2f    Number of Payments: %2d" % (loan, payment))
        med_loan(loan, payment)

    elif loan >= 10001:
        print("Loan Amount: $%4.2f    Number of Payments: %2d" % (loan, payment))
        large_loan(loan, payment)

#call to main
main()
...