• 1
    Entrada e saída
    • Tarefas
  • 2
    Condições
    • Tarefas
  • 3
    Loop for
    • Tarefas
  • 4
    Strings
    • Tarefas
  • 5
    Loop while
    • Tarefas
  • 6
    Listas
    • Tarefas
  • 7
    Matrizes 2D
    • Tarefas
  • 8
    Dicionários
    • Tarefas
  • 9
    Conjuntos
    • Tarefas
  • 10
    Funções e recursão
    • Tarefas
  • к

Lição 5. While cycle

Dificuldade:

Tarefa«Soma dos quadrados dos números»

💻 Python

Você trabalha como engenheiro em um laboratório secreto e testa o novo módulo de computação "Quadron". O módulo aceita comandos na forma de linhas de texto através do console. Sua tarefa & mdash; Escrever um programa símbolo que emulará o trabalho deste módulo.

rn

O simulador deve funcionar em ciclo, constantemente aguardando um comando para encerrar o trabalho.

rn

Comandos do módulo:

rn
  • rn
  • set & lt; number & gt; : Este comando define o limite superior dos cálculos & nbsp; n . Por exemplo, & nbsp; set 10 & nbsp; significa que & nbsp; n & nbsp; agora é 10. O programa deve confirmar a instalação exibindo uma mensagem & nbsp; O novo limite N = 10 está definido. . Se o número no comando for indicado incorretamente (por exemplo, não é um número), o programa deve exibir um erro.
  • rn
  • calc : O simulador deve encontrar todos os números válidos neste comando. O intervalo de 0 a & nbsp; n & nbsp; (inclusive), elevar cada um ao quadrado e depois somar todos os quadrados resultantes. O resultado deve ser exibido no formato & nbsp; O resultado do cálculo para n = 10: 220 . Se & nbsp; n & nbsp; ainda não foi definido usando o primeiro comando, o programa deve informar um erro.
  • rn
  • output : Este comando encerra o simulador.
  • rn rn

    Você precisa criar um programa que processe corretamente esses comandos, gerencie o estado (valor & nbsp; n ) e realize cálculos usando ciclos e condições.

    Formato de entrada

    Comando (String). Esta é uma linha de texto que pode ser uma das três:   set <number> ,   calculate   ou   output . O programa aceita comandos sequencialmente, um após o outro.

    Formato de saída

    Resposta do simulador (String). Esta é uma linha de texto que depende do comando inserido. Pode ser uma confirmação, o resultado do cálculo ou uma mensagem de erro.

    Exemplo

    Entrada

    Instalar 10
    Calcular
    Sair

    Saída

    O novo limite n = 10 foi definido.
    O resultado do cálculo para n = 10: 220

    Dica

    There will be no clue here, decide for yourself!

    main.py
    Teste 1
    Teste 2
    Teste 3
    Teste 4
    Teste 5
    Teste 6
    Teste 7
    Teste 8
    Teste 9
    Teste 10
    Solução do desenvolvedor
    # Инициализируем переменную для хранения лимита 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("Неизвестная команда. Доступные команды: установить <число>, рассчитать, выход.")

    🎉 Parabéns! 🎉

    Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.

    AD

    Publicidade

    red-snake blue-snake green-snake

    Executando seu código...

    Assistente de IA

    Olá! Sou seu assistente de programação. Faça qualquer pergunta sobre Python — posso explicar funções, métodos e ajudá-lo com a tarefa atual!