Задать вопрос

Как можно ужать код 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()
  • Вопрос задан
  • 270 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Python-разработчик
    8 месяцев
    Далее
Решения вопроса 1
kshnkvn
@kshnkvn
yay ✌️ 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)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы