Преобразование циклов в функцию? - PullRequest
0 голосов
/ 22 марта 2020

Мой код пытается создать список значений денежных потоков в течение срока действия кредита (включая сценарий по умолчанию). Если я запускаю код как есть, я получаю именно те ответы, которые мне нужны. Однако, отправив код по электронной почте моему профессору, он сказал мне, что он должен быть в функциях. Я не очень хорош в функциях. Есть идеи?

cashflows_before_default = 0

cashflows_before_default_list = []

for i in range(0, default_year[0]): 
    cashflows_before_default = cash_flows[i]
    cashflows_before_default_list.append(cashflows_before_default)

cashflows_after_default = 0

cashflows_after_default_list = []

for i in range(default_year[0], default_year[0]+2):
    cashflows_after_default = 0
    cashflows_after_default_list.append(cashflows_after_default)

for i in range(default_year[0]+1, (default_year[0]+2)):
    cashflows_after_default = model_data.price_machine * model_data.recovery_rate
    cashflows_after_default_list.append(cashflows_after_default)

total_loan_cashflows = cashflows_before_default_list + cashflows_after_default_list
total_loan_cashflows

1 Ответ

0 голосов
/ 22 марта 2020

Посмотрите, каждый l oop может рассматриваться как функция, хорошие функции обычно не имеют аргументов.

Пример:

def loop1(default_year):
  cashflows_before_default = 0
  cashflows_before_default_list = []
  for i in range(0, default_year[0]): 
    cashflows_before_default = cash_flows[i]
    cashflows_before_default_list.append(cashflows_before_default)

  return cashflows_before_default,cashflows_before_default_list

в чем смысл ?? Вы можете спросить, и ответ - сделать код более читабельным, вместо того, чтобы читать кучу циклов. Если вы все сделаете правильно, вы прочтете только квитанцию, например:

doFunction1()
doFUnction2()
doFunction3()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...