Напишите калькулятор для целочисленных вычислений, который обрабатывает серию команд и выводит результат вычислений по каждой из них.
Каждая команда записывается так: сначала вводится первое число, затем символ операции, затем — при необходимости — второе число. Символы операций (гарантируется, что используются только эти символы):
«+» (сложить два числа),
«-» (вычесть из первого числа второе),
«*» (перемножить два числа),
«/» (поделить первое число на второе нацело),
«%» (получить остаток от деления первого числа на второе),
«!» (посчитать факториал от первого числа, ввод второго числа не производится),
«x» (вывести первое число и закончить выполнение программы, ввод второго числа не производится).
Если пользователь попытается взять факториал от отрицательного числа или сделать ещё что-то незаконное, то никакой результат для этой команды выводить не следует.
Формат ввода
Несколько команд в указанном в условии формате: сначала вводится первое число, затем символ операции, затем при необходимости второе число.
Формат вывода
Несколько целых чисел — результаты выполнения команд.
напиши код на python
Информатика 10 класс Программирование калькулятор на python целочисленные вычисления ввод команд Новый
Конечно, давайте разберем, как можно написать такой калькулятор на Python. Мы создадим программу, которая будет обрабатывать команды, введенные пользователем, и выполнять соответствующие математические операции. Чтобы сделать это, мы будем использовать цикл для обработки нескольких команд и условия для выполнения различных операций. Давайте разберем шаги:
Шаги решения задачи:
Теперь давайте посмотрим на пример кода, который реализует описанную логику:
def calculate():
import math
while True:
command = input("Введите команду: ").strip()
if not command:
continue
parts = command.split()
if len(parts) < 2:
continue
try:
num1 = int(parts[0])
operation = parts[1]
if operation in ['+', '-', '*', '/', '%']:
if len(parts) < 3:
continue
num2 = int(parts[2])
if operation == '+':
result = num1 + num2
elif operation == '-':
result = num1 - num2
elif operation == '*':
result = num1 * num2
elif operation == '/':
if num2 == 0:
continue
result = num1 // num2
elif operation == '%':
if num2 == 0:
continue
result = num1 % num2
print(result)
elif operation == '!':
if num1 < 0:
continue
result = math.factorial(num1)
print(result)
elif operation == 'x':
print(num1)
break
except ValueError:
continue
calculate()
Объяснение кода:
Этот код будет выполнять целочисленные вычисления в соответствии с введенными командами и выводить результат для каждой корректной команды.