• 1
    إدخال وإخراج البيانات
    • المهام
  • 2
    الشروط
    • المهام
  • 3
    حلقة for
    • المهام
  • 4
    السلاسل النصية
    • المهام
  • 5
    حلقة while
    • المهام
  • 6
    القوائم
    • المهام
  • 7
    مصفوفات ثنائية الأبعاد
    • المهام
  • 8
    القواميس
    • المهام
  • 9
    المجموعات
    • المهام
  • 10
    الدوال والتكرار
    • المهام
  • к

درس 5. While cycle

الصعوبة:

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

مسألة«إيجاد متوسط القائمة»

💻 Python

أنت تعمل في شركة تنتج أدوات مستقبلية. منتجك الجديد — جهاز التتبع الحيوي "Vita Puls"، الذي يقيس يوميًا "مؤشر الطاقة الحيوية" للمستخدم. في نهاية الأسبوع، يُصدر الجهاز تقريرًا نهائيًا في شكل سطر واحد. مهمتك — كتابة برنامج يحلل هذا التقرير.

rn

يجب على البرنامج استخراج اسم المستخدم ومؤشراته خلال الأسبوع من السطر. ثم، باستخدام   حلقة   while ، يجب عليه حساب متوسط قيمة فقط   المؤشرات الإيجابية  . المؤشر الإيجابي يعني يومًا جيدًا ومليئًا بالطاقة. المؤشرات السلبية (الإجهاد، التعب) والصفر (يوم محايد) لا ينبغي أخذها في الاعتبار عند حساب المتوسط.

rn

تحتاج إلى معالجة سطر الإدخال، وتحويل البيانات الرقمية من نوع السلسلة النصية (لهذا يمكنك استخدام حلقة   for )، ثم باستخدام حلقة   while إيجاد مجموع وعدد المؤشرات الإيجابية لحساب المتوسط.

تنسيق الإدخال

سطر (نص)، يكون دائمًا بالشكل التالي: & nbsp; "الاسم: [اسم المستخدم]; المؤشرات: [أرقام مفصولة بمسافة]" . على سبيل المثال، & nbsp; الاسم: Alexey; المؤشرات: 10 -5 22 0 -12 18 7 .

تنسيق الإخراج

السطر (النص) الذي يحتوي على اسم المستخدم ومتوسط قيمة مؤشراته الإيجابية. إذا لم تكن هناك أسباب إيجابية خلال أسبوع، يجب عرض رسالة خاصة.

مثال

إدخال

الاسم: إيلينا; المؤشرات: 15 -4 25 0 10 -8 5

إخراج

إيلينا، متوسط مؤشر طاقتك الحياتية للأسبوع: 13.75

تلميح

There will be no clue here, decide for yourself!

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 — يمكنني شرح الدوال والطرق ومساعدتك في المهمة الحالية!