• 1
    Entrada y salida de datos
    • Tareas
  • 2
    Condiciones
    • Tareas
  • 3
    Bucle for
    • Tareas
  • 4
    Cadenas de texto
    • Tareas
  • 5
    Bucle while
    • Tareas
  • 6
    Listas
    • Tareas
  • 7
    Matrices 2D
    • Tareas
  • 8
    Diccionarios
    • Tareas
  • 9
    Conjuntos
    • Tareas
  • 10
    Funciones y recursión
    • Tareas
  • к

Lección 5. While cycle

Dificultad:

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

Tarea«Promedio en la lista»

💻 Python

trabajas en una empresa que produce gadgets futuristas. Tu nuevo producto — Bio-tracker "Vita Puls", que cada día mide el "indicador de la energía vital" del usuario. Al final de la semana, el dispositivo genera el informe final en forma de una línea. Tu tarea — Escribir un programa que analice este informe.

rn

el programa debe extraer de la línea el nombre del usuario y sus indicadores de la semana. Luego, usando   el   while , debe calcular el valor promedio de solo   positivos   indicadores. Un indicador positivo significa un día bueno y enérgico. Los indicadores negativos (estrés, fatiga) y cero (día neutral) no deben tenerse en cuenta al calcular el promedio.

rn

necesitas procesar la línea de entrada, convertir los datos numéricos del tipo cadena (para esto puedes usar el ciclo   for ), y luego usando el ciclo   while encontrar la suma y el número de indicadores positivos para calcular el promedio.

Formato de entrada

línea (cadena), que siempre tiene la siguiente vista: & nbsp; "nombre: [nombre de usuario]; indicadores: [números separados por un espacio]" . Por ejemplo, & nbsp; Nombre: Alexey; Indicadores: 10 -5 22 0 -12 18 7 .

Formato de salida

La línea (cadena) que contiene el nombre de usuario y el valor promedio de sus indicadores positivos. Si no hubo razones positivas durante una semana, debe mostrar un mensaje especial.

Ejemplo

Entrada

Name: Elena; Indicators: 15 -4 25 0 10 -8 5

Salida

Elena, el indicador promedio de tu energía vital durante la semana: 13.75

Pista

There will be no clue here, decide for yourself!

main.py
Prueba 1
Prueba 2
Prueba 3
Prueba 4
Prueba 5
Prueba 6
Prueba 7
Prueba 8
Prueba 9
Prueba 10
Solución del desarrollador
# Получаем на вход одну строку с данными от био-трекера
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}, на этой неделе не было дней с положительными показателями.")

🎉 ¡Felicidades! 🎉

¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.

AD

Publicidad

red-snake blue-snake green-snake

Ejecutando tu código...

Asistente de IA

¡Hola! Soy tu asistente de programación. Hazme cualquier pregunta sobre Python — puedo explicarte funciones, métodos y ayudarte con la tarea actual.