2016-11-25 3 views
0

Я пытаюсь написать функцию (в Python 2.7), которая берет непогашенный остаток и годовую процентную ставку, а затем возвращает минимальный ежемесячный платеж до ближайшего цент с использованием поиска по биссектрису to solve problem #3. Я пытаюсь следовать принципам DRY, написав функцию внутри основной функции, которая должна возвращать список с балансом через год и количеством месяцев (цикл должен быть разорван, если баланс достигнет нуля или меньше), который нужно будет вычислить дважды в моей основной функции. Когда я пытаюсь проверить это начальное закрытие перед перемещением, я получаю синтаксическую ошибку в строке, назначая monthlyPayment. Что я делаю не так?Недопустимый синтаксис, пытающийся написать закрытие Python

# Problem Set 1("C") 
# Time Spent: xx hours 

def payInOne_BisectionSearch (balance,annualRate): 
    #initialize variables 
    initialBalance = balance 
    monthlyRate = annualRate/12 
    minMonthly = balance/12 
    maxMonthly = (balance * (1 + monthlyRate ** 12)/12 
    monthlyPayment = (minMonthly + maxMonthly)/2 
    numMonths = 1 
    #define function to check balance after 12 months  
    def balanceAfterYear (balance, monthlyRate, monthlyPayment): 
     for numMonths in range (1,13): 
      interest = balance * monthlyRate 
      balance += interest - monthlyPayment 
      if balance <= 0: 
       break 
     return [balance, numMonths] 
    resultList = balanceAfterYear(initialBalance, monthlyRate, monthlyPayment) 
    print resultList[0],resultList[1] 


payInOne_BisectionSearch (input("Enter the outstanding balance"),input("Enter annual rate as a decimal")) 

ответ

1

Вы забыли закрыть скобу в предыдущей строке.

maxMonthly = (balance * (1 + monthlyRate ** 12)/12 
+0

О, черт возьми, так стыдно. Спасибо. –