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

درس 5. While cycle

الصعوبة:

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

مسألة«مجموع مربعات الأعداد»

💻 Python

أنت تعمل كمهندس في مختبر سري وتختبر وحدة الحوسبة الجديدة "كوادرون". تقبل الوحدة الأوامر في شكل أسطر نصية عبر وحدة التحكم. مهمتك & mdash; كتابة برنامج بلغة بايثون يحاكي عمل هذه الوحدة.

rn

يجب أن يعمل المحاكي في حلقة، منتظرًا باستمرار أمرًا لإنهاء العمل.

rn

أوامر الوحدة:

rn
  • rn
  • set < number > : هذا الأمر يحدد الحد الأعلى للحسابات & nbsp; n . على سبيل المثال، & nbsp; set 10 & nbsp; يعني أن & nbsp; n & nbsp; أصبح الآن 10. يجب على البرنامج تأكيد التثبيت بعرض رسالة & nbsp; تم تعيين الحد الجديد N = 10. . إذا تم تحديد الرقم في الأمر بشكل غير صحيح (على سبيل المثال، ليس رقمًا)، يجب على البرنامج عرض خطأ.
  • rn
  • calc : يجب على المحاكي إيجاد جميع الأرقام الصحيحة في النطاق من 0 إلى & nbsp; n & nbsp; (شاملًا)، وتربيع كل منها، ثم جمع كل المربعات الناتجة. يجب عرض النتيجة بتنسيق & nbsp; نتيجة الحساب لـ n = 10: 220 . إذا لم يتم تعيين & nbsp; n & nbsp; بعد باستخدام الأمر الأول، يجب على البرنامج الإبلاغ عن خطأ.
  • rn
  • output : هذا الأمر ينهي عمل المحاكي.
  • rn rn

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

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

    الفريق (نص). هذا سطر نصي يمكن أن يكون واحدًا من ثلاثة:   set < number > ،   calculate   أو   output . يستقبل البرنامج الأوامر بشكل تسلسلي، واحدًا تلو الآخر.

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

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

    مثال

    إدخال

    تثبيت 10
    حساب
    خروج

    إخراج

    تم تعيين الحد الجديد n = 10.
    نتيجة الحساب لـ n = 10: 220

    تلميح

    There will be no clue here, decide for yourself!

    main.py
    اختبار 1
    اختبار 2
    اختبار 3
    اختبار 4
    اختبار 5
    اختبار 6
    اختبار 7
    اختبار 8
    اختبار 9
    اختبار 10
    حل المطور
    # Инициализируем переменную для хранения лимита n.
    # None означает, что значение еще не было установлено пользователем.
    n_limit = None
    
    # Запускаем бесконечный цикл, который будет работать, пока пользователь не введет команду "выход".
    # Это основной цикл программы, обрабатывающий команды.
    while True:
        # Считываем текстовую команду, введенную пользователем с клавиатуры.
        command = input()
    
        # Проверяем, если пользователь ввел команду "выход".
        if command == "выход":
            # Если да, то прерываем исполнение цикла while с помощью оператора break.
            break
        # Проверяем, начинается ли введенная строка с "установить ".
        # Это позволяет нам обрабатывать команды вида "установить 10", "установить 50" и т.д.
        elif command.startswith("установить "):
            # Разбиваем введенную строку на части по пробелу. Например, "установить 10" станет списком ["установить", "10"].
            parts = command.split()
            # Проверяем, что команда состоит из двух частей и вторая часть является числом.
            if len(parts) == 2 and parts[1].isdigit():
                # Если проверка прошла, преобразуем вторую часть (которая является строкой) в целое число.
                n_limit = int(parts[1])
                # Выводим пользователю подтверждение, что лимит успешно установлен, используя f-строку для форматирования.
                print(f"Новый лимит n = {n_limit} установлен.")
            else:
                # Если формат команды неверный (например, "установить" без числа или "установить abc"), выводим ошибку.
                print("Ошибка: неверный формат команды. Используйте: установить <число>")
        # Проверяем, если пользователь ввел в точности команду "рассчитать".
        elif command == "рассчитать":
            # Прежде чем считать, проверяем, было ли значение n_limit установлено ранее.
            if n_limit is not None:
                # Если n_limit установлен, инициализируем переменную для хранения суммы квадратов.
                sum_of_squares = 0
                # Запускаем цикл for, который перебирает все числа от 0 до n_limit включительно.
                for i in range(n_limit + 1):
                    # Внутри цикла проверяем, является ли текущее число i четным.
                    # Деление с остатком (%) на 2 вернет 0 только для четных чисел.
                    if i % 2 == 0:
                        # Если число четное, вычисляем его квадрат (i * i) и добавляем к общей сумме.
                        sum_of_squares += i * i
                # После завершения цикла выводим итоговый результат в требуемом формате.
                print(f"Результат расчета для n={n_limit}: {sum_of_squares}")
            else:
                # Если n_limit все еще равен None, значит, команду "установить" еще не вызывали.
                print("Ошибка: лимит n не установлен. Используйте команду установить <число>.")
        # Если введенная команда не совпала ни с одной из известных.
        else:
            # Сообщаем пользователю, что его команда не распознана.
            print("Неизвестная команда. Доступные команды: установить <число>, рассчитать, выход.")

    🎉 تهانينا! 🎉

    لقد حللت المهمة ببراعة! كان صعبًا لكنك وجدت الحل الصحيح. أنت خطوة أقرب إلى الاحتراف! استمر، كل مرحلة تجعلك أقوى.

    AD

    إعلان

    red-snake blue-snake green-snake

    جارٍ تشغيل الكود...

    مساعد الذكاء الاصطناعي

    مرحباً! أنا مساعدك في البرمجة. اسألني أي شيء عن Python — يمكنني شرح الدوال والطرق ومساعدتك في المهمة الحالية!