• 1
    Eingabe und Ausgabe
    • Aufgaben
  • 2
    Bedingungen
    • Aufgaben
  • 3
    For-Schleife
    • Aufgaben
  • 4
    Zeichenketten
    • Aufgaben
  • 5
    While-Schleife
    • Aufgaben
  • 6
    Listen
    • Aufgaben
  • 7
    2D-Arrays
    • Aufgaben
  • 8
    Wörterbücher
    • Aufgaben
  • 9
    Mengen
    • Aufgaben
  • 10
    Funktionen und Rekursion
    • Aufgaben
  • к

Lektion 5. While cycle

Schwierigkeit:

Aufgabe«Durchschnittswert in Liste finden»

💻 Python

Sie arbeiten in einem Unternehmen, das futuristische Gadgets herstellt. Ihr neues Produkt — der Bio-Tracker "Vita Puls", der täglich den "Indikator der Lebensenergie" des Benutzers misst. Am Ende der Woche erstellt das Gerät den endgültigen Bericht in Form einer Zeile. Ihre Aufgabe — Schreiben Sie ein Programm, das diesen Bericht analysiert.

rn

Das Programm muss aus der Zeile den Benutzernamen und seine Indikatoren der Woche extrahieren. Dann soll es mit   der   while -Schleife den Durchschnittswert nur der   positiven   Indikatoren berechnen. Ein positiver Indikator bedeutet einen guten, energiereichen Tag. Negative Indikatoren (Stress, Müdigkeit) und Null (neutraler Tag) sollten bei der Berechnung des Durchschnitts nicht berücksichtigt werden.

rn

Sie müssen die Eingabezeile verarbeiten, die numerischen Daten vom Typ String konvertieren (dazu können Sie die   for -Schleife verwenden) und dann mit der   while -Schleife die Summe und Anzahl der positiven Indikatoren für die Berechnung des Durchschnitts ermitteln.

Eingabeformat

Zeile (Zeichenkette), die immer das folgende Format hat:   "Name: [Benutzername]; Indikatoren: [Zahlen durch Leerzeichen getrennt]" . Zum Beispiel:   Name: Alexey; Indikatoren: 10 -5 22 0 -12 18 7 .

Ausgabeformat

Die Zeile (Zeichenkette), die den Benutzernamen und den Durchschnittswert seiner positiven Indikatoren enthält. Wenn es in einer Woche keine positiven Gründe gab, muss eine spezielle Nachricht ausgegeben werden.

Beispiel

Eingabe

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

Ausgabe

Elena, der durchschnittliche Indikator deiner Lebensenergie für die Woche: 13.75

Hinweis

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
Entwicklerlösung
# Получаем на вход одну строку с данными от био-трекера
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}, на этой неделе не было дней с положительными показателями.")

🎉 Glückwunsch! 🎉

Du hast die Aufgabe hervorragend gelöst! Es war schwierig, aber du hast die Lösung gefunden. Du bist dem Meister einen Schritt näher! Mach weiter so.

AD

Werbung

red-snake blue-snake green-snake

Führe deinen Code aus...

KI-Assistent

Hallo! Ich bin dein Programmier-Assistent. Stelle mir beliebige Fragen zu Python — ich erkläre Funktionen, Methoden und helfe dir bei der aktuellen Aufgabe!