• 1
    Entrée et sortie
    • Tâches
  • 2
    Conditions
    • Tâches
  • 3
    Boucle for
    • Tâches
  • 4
    Chaînes
    • Tâches
  • 5
    Boucle while
    • Tâches
  • 6
    Listes
    • Tâches
  • 7
    Tableaux 2D
    • Tâches
  • 8
    Dictionnaires
    • Tâches
  • 9
    Ensembles
    • Tâches
  • 10
    Fonctions et récursion
    • Tâches
  • к

Leçon 5. While cycle

Difficulté :

Exercice«Valeur moyenne dans la liste»

💻 Python

Vous travaillez dans une entreprise qui produit des gadgets futuristes. Votre nouveau produit — le Bio-tracker « Vita Puls », qui mesure chaque jour « l'indicateur de l'énergie vitale » de l'utilisateur. À la fin de la semaine, l'appareil génère le rapport final sous la forme d'une seule ligne. Votre tâche — Écrire un programme qui analyse ce rapport.

rn

Le programme doit extraire de la ligne le nom de l'utilisateur et ses indicateurs de la semaine. Ensuite, en utilisant   la boucle   While , il doit calculer la valeur moyenne uniquement des   indicateurs positifs  . Un indicateur positif signifie une bonne journée, pleine d'énergie. Les indicateurs négatifs (stress, fatigue) et zéro (journée neutre) ne doivent pas être pris en compte lors du calcul de la moyenne.

rn

Vous devez traiter la ligne d'entrée, convertir les données numériques du type chaîne (pour cela, vous pouvez utiliser la boucle   for ), puis, en utilisant la boucle   While , trouver la somme et le nombre d'indicateurs positifs pour calculer la moyenne.

Format d entrée

ligne (chaîne de caractères), qui a toujours la forme suivante : & nbsp; "nom : [nom d'utilisateur] ; indicateurs : [nombres séparés par un espace]" . Par exemple, & nbsp; Nom : Alexey ; Indicateurs : 10 -5 22 0 -12 18 7 .

Format de sortie

La ligne (chaîne) contenant le nom d'utilisateur et la valeur moyenne de ses indicateurs positifs. S'il n'y a eu aucune raison positive pendant une semaine, vous devez afficher un message spécial.

Exemple

Entrée

Nom : Elena ; Indicateurs : 15 -4 25 0 10 -8 5

Sortie

Elena, l'indicateur moyen de votre énergie vitale pour la semaine : 13.75

Indice

There will be no clue here, decide for yourself!

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

🎉 Félicitations ! 🎉

Tu as brillamment résolu la tâche ! C était difficile, mais tu as trouvé la bonne solution. Tu es encore plus proche de maîtriser la programmation ! Continue ainsi.

AD

Publicité

red-snake blue-snake green-snake

Exécution de votre code...

Assistant IA

Bonjour ! Je suis ton assistant de programmation. Pose moi toutes tes questions sur Python — je peux t expliquer les fonctions, les méthodes et t aider avec la tâche en cours !