【发布时间】:2014-02-11 02:56:06
【问题描述】:
import math
import sys
def calculateValues(loanAmt, numYears):
for monthlyRate in range (4, 9):
monthlyRate = monthlyRate / 100
monthlyPayment = loanAmt * monthlyRate / (1 - math.pow(1 / (1 + monthlyRate), numYears * 12))
totalPayment = monthlyPayment * numYears * 12
return monthlyRate, monthlyPayment, totalPayment
def printPayments(monthlyRate, monthlyPayment, totalPayment, loanAmt, numYears):
print("Rate Monthly Payment Total Payment")
for monthlyRate in range (4, 9):
calculateValues(loanAmt, numYears)
print("{0}% ${1:0.2f} ${2:0.2f}".format( monthlyRate, monthlyPayment, totalPayment))
def repeat():
question = str(input("Would you like to create a new table? (Enter y for yes): "))
if (question == "y"):
main()
else:
sys.exit()
def getPositiveFloat():
loanAmt = int(input("Enter the amount of the loan: "))
numYears = int(input("Enter the number of years: "))
if (loanAmt < 0) or (numYears < 0):
print("Please enter a positive number for both questions")
main()
return loanAmt, numYears
def main():
loanAmt, numYears = getPositiveFloat()
monthlyRate, monthlyPayment, totalPayment = calculateValues(loanAmt, numYears)
printPayments(monthlyRate, monthlyPayment, totalPayment, loanAmt, numYears)
repeat()
main()
当该程序运行时,monthlyRate 变量(在 printPayments 中定义)迭代,但在 calculateValues 中计算的值不会迭代。我发现我需要将monthlyRate 提供给calculateValues 作为参数,但我不确定如何在不破坏所有内容的情况下做到这一点。
【问题讨论】:
-
只是一个提醒——如果一个答案很好地解决了你的问题,你应该正式接受它。祝你好运!
标签: python loops for-loop arguments iteration