avelecter
@avelecter

Как можно ужать код Python (if)?

Всем привет
Есть такой код
Как можно уменьшить его без ущерба?
Не понимаю как применить while (если он тут применим), чтобы код ды значительно меньше?

def pay():  # количество лет выплаты дивов за 7 последних лет. Если выплата не равно 0, то прибавляем +1
    i = 0
    if year2019.value != 0:
        i += 1
    else:
        pass

    if year2018.value != 0:
        i += 1
    else:
        pass

    if year2017.value != 0:
        i += 1
    else:
        pass

    if year2016.value != 0:
        i += 1
    else:
        pass

    if year2015.value != 0:
        i += 1
    else:
        pass

    if year2014.value != 0:
        i += 1
    else:
        pass

    if year2013.value != 0:
        i += 1
    else:
        pass
    pay_index = i  # получаем pay_index
    return pay_index


pay()
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
kshnkvn
@kshnkvn
t.me/kshnkvn
years = [year2013, year2014, year2015]
for year in years:
    if year.value != 0:
        i += 1
    else:
        pass
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Guest007
@Guest007
Django, Python, Linux и всё такое...
Вроде бы так...
years = [year2013, year2014, year2015, year2016, year2017, year2018, year2019]
result = sum(y.value for y in years if y.value)

Хотя если проверка только на 0, то на результат суммирования это не влияет, тогда вторая строка даже проще:
result = sum(y.value for y in years)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы