• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 5. Цикл while

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«Био-трекер»

Вы работаете в компании, которая производит футуристические гаджеты. Ваш новый продукт — био-трекер "Вита-Пульс", который каждый день измеряет "показатель жизненной энергии" пользователя. В конце недели устройство генерирует итоговый отчет в виде одной строки. Ваша задача — написать программу, которая анализирует этот отчет.

Программа должна извлекать из строки имя пользователя и его показатели за неделю. Затем, используя цикл while, она должна вычислить среднее значение только положительных показателей. Положительный показатель означает хороший, энергичный день. Отрицательные показатели (стресс, усталость) и нулевые (нейтральный день) не должны учитываться при расчете среднего.

Вам нужно обработать входную строку, преобразовать числовые данные из строкового типа в числовой (для этого можно использовать цикл for), а затем с помощью цикла while найти сумму и количество положительных показателей для вычисления среднего.

Формат ввода

Строка (string), которая всегда имеет следующий вид: "Имя: [имя пользователя]; Показатели: [числа через пробел]". Например, Имя: Алексей; Показатели: 10 -5 22 0 -12 18 7.

Формат Вывода

Строка (string), содержащая имя пользователя и среднее значение его положительных показателей. Если положительных показателей за неделю не было, нужно вывести специальное сообщение.

Пример

Ввод

Имя: Елена; Показатели: 15 -4 25 0 10 -8 5

Вывод

Елена, средний показатель вашей жизненной энергии за неделю: 13.75

Подсказка

Тут подсказки не будет, решай сам!

main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Тест 10
Решение разработчика
# Получаем на вход одну строку с данными от био-трекера
input_string = input()

# Разделяем строку на две части по символу ';'
# parts будет списком, например: ['Имя: Елена', ' Показатели: 15 -4 25 0 10 -8 5']
parts = input_string.split(';')

# Из первой части извлекаем имя
# Сначала разделяем 'Имя: Елена' по ':', получаем ['Имя', ' Елена']
# Берем второй элемент ' Елена' и убираем пробелы по краям с помощью strip()
user_name = parts[0].split(':')[1].strip()

# Из второй части извлекаем строку с показателями
# Аналогично получаем ' 15 -4 25 0 10 -8 5' и убираем пробелы
scores_string = parts[1].split(':')[1].strip()

# Разделяем строку с показателями по пробелу, чтобы получить список строк
# ['15', '-4', '25', '0', '10', '-8', '5']
str_numbers = scores_string.split()

# Создаем пустой список для хранения чисел
numbers = []
# Используем цикл for для преобразования каждой строки в списке в целое число
for s_num in str_numbers:
    numbers.append(int(s_num))

# Инициализируем переменные для цикла while
sum_of_positives = 0  # Сумма положительных чисел
count_of_positives = 0  # Количество положительных чисел
index = 0  # Индекс для перебора списка
list_length = len(numbers) # Длина списка, чтобы знать, когда остановиться

# Основной цикл while для подсчета среднего значения
while index < list_length:
    # Получаем текущее число из списка по индексу
    current_number = numbers[index]
    
    # Проверяем, является ли число строго положительным
    if current_number > 0:
        # Если да, добавляем его к сумме
        sum_of_positives += current_number
        # и увеличиваем счетчик положительных чисел
        count_of_positives += 1
    
    # Переходим к следующему элементу списка
    index += 1

# После цикла проверяем, были ли найдены положительные числа
if count_of_positives > 0:
    # Если да, вычисляем среднее значение
    average = sum_of_positives / count_of_positives
    # Выводим результат в заданном формате
    print(f"{user_name}, средний показатель вашей жизненной энергии за неделю: {average}")
else:
    # Если положительных чисел не было, выводим другое сообщение
    print(f"{user_name}, на этой неделе не было дней с положительными показателями.")

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, обьяснить то, что тебе не понятно, а так же о текущей задаче!