@falsem

Как посчитать элементы списка в нужном числовом диапазоне?

Задача:
Создайте функцию comfort_count(temperatures) для подсчёта комфортных дней в переданном списке — дней с температурой воздуха от 22 до 26 градусов включительно.
Функция в результате работы должна вывести на экран строку 'Количество комфортных дней в этом месяце: N', где N — результат подсчёта в цикле с условием. Сначала посчитайте комфортные дни в мае 2017-го года, а потом — в мае 2018-го.

Код:
may_2017 = [24, 26, 15, 10, 15, 19, 10, 1, 4, 7, 7, 7, 12, 14, 17, 8, 9, 19, 21, 22, 11, 15, 19, 23, 15, 21, 16, 13, 25, 17, 19]
may_2018 = [20, 27, 23, 18, 24, 16, 20, 24, 18, 15, 19, 25, 24, 26, 19, 24, 25, 21, 17, 11, 20, 21, 22, 23, 18, 20, 23, 18, 22, 23, 11]

def comfort_count(temperatures):
    temp = len(temperatures)
    for temp in temperatures:
        if 22 <= temp <= 26:
            temp += 1
    print('Количество комфортных дней в этом месяце: ', temp)

comfort_count(may_2017)  
comfort_count(may_2018)


В результате функция выводит последний элемент списка, в чём ошибка?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
@dmtrrr
Backend developer
Не нужно использовать temp для подсчета дней и для итерации.
count = 0
for t in temperatures:
   if t <= 26:
      count += 1
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Переменная цикла затирает переменную в этой же области видимости.
Ответ написан
@anerev
def comfort_count(temperatures):
    print('Количество комфортных дней в этом месяце: ', len([x for x in temperatures if x <= 26 and x >= 22]))
Ответ написан
Ваш ответ на вопрос

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

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