• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 5. While cycle

难度:

任务«数字的平方和»

💻 Python

你在一家秘密实验室担任工程师,负责测试新型计算模块“Quadron”。该模块通过控制台接收文本形式的命令。你的任务是编写一个符号程序,模拟该模块的工作。

模拟器应在循环中运行,持续等待命令,直到收到退出指令。

模块命令:

  1. set :此命令设置计算的上限 n。例如,set 10 表示 n 现在为 10。程序必须通过显示消息 New limit N = 10 is set. 来确认设置。如果命令中的数字指定错误(例如不是数字),程序应输出错误信息。
  2. calc:模拟器必须找出从 0 到 n(包含)范围内所有有效的数字,计算每个数字的平方,然后将所有平方相加。结果应以 Calculation result for N = 10: 220 的格式输出。如果 n 尚未通过第一条命令设置,程序应报告错误。
  3. exit:此命令结束模拟器运行。

你需要创建一个程序,能够正确处理这些命令,管理状态(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

正在运行代码...

AI助手

你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!