🎉 恭喜! 🎉
你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。
你在一家生产未来科技小工具的公司工作。你的新产品——生物追踪器“生命脉冲”,每天测量用户的“生命能量指标”。在周末,该设备会以一行文本的形式生成最终报告。你的任务是编写一个程序来分析这份报告。
程序必须从该行中提取用户名及其一周内的指标。然后,使用 while 循环 ,仅计算 正数 指标的平均值。正数指标代表精力充沛的好日子。负数指标(压力、疲劳)和零(中性日)在计算平均值时不应考虑。
你需要处理输入行,将数值数据从字符串类型转换(为此你可以使用 for 循环),然后使用 while 循环找出正数指标的总和与个数,以计算平均值。
行(字符串),其格式始终如下: "name: [用户名]; indicators: 以空格分隔的数字"。例如, Name: Alexey; Indicators: 10 -5 22 0 -12 18 7。
该行(字符串)包含用户名及其正面指标的平均值。如果一周内没有正面原因,则需要显示一条特殊消息。
姓名:Elena;指标:15 -4 25 0 10 -8 5
埃琳娜,你本周生命能量的平均指标:13.75
# Получаем на вход одну строку с данными от био-трекера
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
广告
正在运行代码...