• 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«Somme des carrés»

💻 Python

Vous travaillez comme ingénieur dans un laboratoire secret et testez le nouveau module de calcul "Quadron". Le module accepte des commandes sous forme de lignes de texte via la console. Votre tâche & mdash; Écrire un programme symbolique qui émule le fonctionnement de ce module.

Le simulateur doit fonctionner en boucle, attendant constamment une commande pour terminer le travail.

Commandes du module :

  1. set < number > : Cette commande définit la limite supérieure des calculs   n . Par exemple,   set 10   signifie que   n   est maintenant 10. Le programme doit confirmer l'installation en affichant un message   the new limit N = 10 is set. . Si le nombre dans la commande est indiqué incorrectement (par exemple, ce n'est pas un nombre), le programme doit générer une erreur.
  2. calc : Le simulateur doit trouver tous les nombres valides dans cette commande. La plage de 0 à   n   (inclus), mettre chaque nombre au carré, puis additionner tous les carrés résultants. Le résultat doit être affiché au format   the calculation result for n = 10: 220 . Si   n   n'a pas encore été défini à l'aide de la première commande, le programme doit signaler une erreur.
  3. output : Cette commande termine le simulateur.

Vous devez créer un programme qui traitera correctement ces commandes, gérera l'état (valeur   n ) et effectuera les calculs à l'aide de boucles et de conditions.

Format d entrée

Équipe (chaîne de caractères). Il s'agit d'une ligne de texte qui peut être l'une des trois suivantes :   set < number > ,   calculate   ou   output . Le programme accepte les commandes séquentiellement, l'une après l'autre.

Format de sortie

Réponse du simulateur (chaîne de caractères). Il s'agit d'une ligne de texte qui dépend de la commande saisie. Cela peut être une confirmation, le résultat du calcul ou un message d'erreur.

Exemple

Entrée

Installer 10
Calculer
Quitter

Sortie

La nouvelle limite n = 10 est définie.
Le résultat du calcul pour n = 10 : 220

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
# Инициализируем переменную для хранения лимита 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("Неизвестная команда. Доступные команды: установить <число>, рассчитать, выход.")

🎉 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 !