• 1
    Eingabe und Ausgabe
    • Aufgaben
  • 2
    Bedingungen
    • Aufgaben
  • 3
    For-Schleife
    • Aufgaben
  • 4
    Zeichenketten
    • Aufgaben
  • 5
    While-Schleife
    • Aufgaben
  • 6
    Listen
    • Aufgaben
  • 7
    2D-Arrays
    • Aufgaben
  • 8
    Wörterbücher
    • Aufgaben
  • 9
    Mengen
    • Aufgaben
  • 10
    Funktionen und Rekursion
    • Aufgaben
  • к

Lektion 5. While cycle

Schwierigkeit:

Aufgabe«Summe der Zahlenquadrate»

💻 Python

Sie arbeiten als Ingenieur in einem geheimen Labor und testen das neue Rechenmodul "Quadron". Das Modul akzeptiert Befehle in Form von Textzeilen über die Konsole. Ihre Aufgabe — Schreiben Sie ein Programm in Python, das die Arbeit dieses Moduls emuliert.

Der Simulator soll in einer Schleife arbeiten und ständig auf einen Befehl warten, bis die Arbeit beendet wird.

Modulbefehle:

  1. set <number>: Dieser Befehl setzt die obere Grenze der Berechnungen   n. Zum Beispiel   set 10   bedeutet, dass   n   jetzt 10 ist. Das Programm muss die Einstellung bestätigen, indem es eine Nachricht ausgibt   the new limit N = 10 is set.. Wenn die Zahl im Befehl falsch angegeben ist (z. B. ist es keine Zahl), soll das Programm einen Fehler ausgeben.
  2. calc: Der Simulator muss alle gültigen Zahlen in diesem Befehl finden. Der Bereich von 0 bis   n   (einschließlich), jede Zahl quadrieren und dann alle resultierenden Quadrate addieren. Das Ergebnis muss im Format ausgegeben werden   the calculation result for n = 10: 220. Wenn   n   noch nicht mit dem ersten Befehl gesetzt wurde, soll das Programm einen Fehler melden.
  3. output: Dieser Befehl beendet den Simulator.

Sie müssen ein Programm erstellen, das diese Befehle korrekt verarbeitet, den Zustand (Wert   n) verwaltet und Berechnungen mit Schleifen und Bedingungen durchführt.

Eingabeformat

Team (String). Dies ist eine Textzeile, die eine der drei sein kann:   set < number > ,   calculate   oder   output . Das Programm akzeptiert Befehle nacheinander, einen nach dem anderen.

Ausgabeformat

Simulator-Antwort (String). Dies ist eine Textzeile, die vom eingegebenen Befehl abhängt. Es kann sich um eine Bestätigung, das Ergebnis einer Berechnung oder eine Fehlermeldung handeln.

Beispiel

Eingabe

Installieren 10
Berechnen
Beenden

Ausgabe

Der neue Grenzwert n = 10 ist festgelegt.
Das Berechnungsergebnis für n = 10: 220

Hinweis

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

🎉 Glückwunsch! 🎉

Du hast die Aufgabe hervorragend gelöst! Es war schwierig, aber du hast die Lösung gefunden. Du bist dem Meister einen Schritt näher! Mach weiter so.

AD

Werbung

red-snake blue-snake green-snake

Führe deinen Code aus...

KI-Assistent

Hallo! Ich bin dein Programmier-Assistent. Stelle mir beliebige Fragen zu Python — ich erkläre Funktionen, Methoden und helfe dir bei der aktuellen Aufgabe!