Программа "Простейший калькулятор"

Написать программу, которая выполняет над двумя вещественными числами одну из четырех арифметических операций (сложение, вычитание, умножение или деление). Программа должна завершаться только по желанию пользователя.

Решение задачи на языке программирования Python

Чтобы программа самопроизвольно не завершалась, в ней надо запустить бесконечный цикл. Выход из него будем осуществлять с помощью оператора break, если пользователь вводит определенный символ вместо знака арифметической операции.

Если пользователь ввел знак, который не является ни знаком арифметической операции, ни символом-"прерывателем" работы программы, то вывести сообщение о некорректном вводе.

Если был введен один из четырех знаков операции, запросить ввод двух чисел.

В зависимости от знака операции выполнить соответствующее арифметическое действие.

Если было выбрано деление, необходимо проверить не является ли нулем второе число. Если это так, то сообщить о невозможности деления.

print('0 в качестве знака операции'
      '\nзавершит работу программы\n')

while True:
    s = input('Знак (+, -, *, /): ')
    if s == '0':
        break
    if s in ('+', '-', '*', '/'):
        a = float(input('a = '))
        b = float(input('b = '))
        if s == '+':
            print('%.2f' % (a + b))
        elif s == '-':
            print('%.2f' % (a - b))
        elif s == '*':
            print('%.2f' % (a * b))
        elif s == '/':
            if b != 0:
                print('%.2f' % (a / b))
            else:
                print('Деление на ноль!')
    else:
        print('Неверный знак операции!')

Пример выполнения программы:

0 в качестве знака операции
завершит работу программы

Знак (+, -, *, /): /
a = -9.34
b = 3.215
-2.91
Знак (+, -, *, /): &
Неверный знак операции!
Знак (+, -, *, /): -
a = 4005
b = 1358
2647.00
Знак (+, -, *, /): 0

Вариант решение задачи с помощью оператора match (появился в Python 3.10):

print('0 в качестве знака - выход из программы\n')

while True:
    s = input('Знак (+, -, *, /): ')
    if s == '0':
        break
    if s in ('+', '-', '*', '/'):
        a = float(input('a = '))
        b = float(input('b = '))
        match s:
            case '+':
                print('%.2f' % (a + b))
            case '-':
                print('%.2f' % (a - b))
            case '*':
                print('%.2f' % (a * b))
            case '/':
                if b != 0:
                    print('%.2f' % (a / b))
                else:
                    print('Деление на ноль!')
    else:
        print('Неверный знак операции!')

Больше задач в PDF


Решение задач на Python




Все разделы сайта