Найти - Пользователи
Полная версия: Калькулятор
Начало » Центр помощи » Калькулятор
1
Nameless95
Помогите с написанием программы:
Напишите калькулятор. При запуске ваша программа должна ожидать ввода пользователем команды (при этом на экран выводить ничего не нужно). Команды могут быть трех типов:

1)Слово “exit”. В этом случае скрипт должен вывести на экран слово “bye” и завершить работу.
2)Три аргумента через пробел – первый операнд (целое число), операция (одна из “+”, “-”, “*”, “/”, “%”, “**”) и второй операнд (целое число). В этом случае нужно произвести указанную операцию над заданными числами и вывести результат на экран. После этого переходим в режим ожидания новой команды.
3)Любая другая команда из одного аргумента или из трех аргументов, но с операцией не из списка. В этом случае нужно вывести на экран слово “error” и завершить работу."
Заранее спасибо за помощь!
terabayt
while True:
    s = input("").replace(" ", "")
    [exit("Error") for i in s if i not in list(map(str, range(10)))+['+', '-', '*', '/', '%', '**']]
    print(eval(s))
botinag
actions = ('+', '-', '*', '/', '%', '**')
while True:
    string = raw_input('')
    args = string.split(' ')
    if string == 'exit':
        print('bye')
        break
    elif len(args) == 3:
        if isinstance(args[0], int) and isinstance(args[2], int) and args[1] in actions:
            print(eval(string))
        else:
            print('error')
            break
    else:
        print('error')
        break
как-то так. проверяйте сами.
dimy44
while True:
    e = input().lower() # if python 2.x: e = raw_input().lower()
    if e == 'exit':
        print('bye')
        break
    lst = e.split()
    if len(lst) != 3 or \
        not lst[0].isdigit() or \
        lst[1] not in ['+', '-', '*', '/', '%', '**'] or \
        not lst[2].isdigit():
            print('error')
            break
    try:
        result = eval(e)
    except Exception as err: # if python 2.x: except Exception, err:
        result = err
    print(result)
        
terabayt
dimy44
-2 - 3
error
dimy44
Ну вот, так всегда)), ладно
while True:
    e = input().lower().strip()
    if e == 'exit':
        print('bye')
        break
    lst = e.split()
    try:
        assert len(lst) == 3 and \
            lst[1] in ['+', '-', '*', '/', '%', '**'] and \
            isinstance(eval(lst[0]), int) and \
            isinstance(eval(lst[2]), int)
        print(eval(e))
    except ZeroDivisionError:
        print('Zero division')
    except Exception:
        print('error')
        break
alchemist
dimy44
в Криму что свет есть? А в Одессе виключают
Лучше б всякие пидори сидели в темноте.
dimy44
alchemist
dimy44в Криму что свет есть? А в Одессе виключают Лучше б всякие пидори сидели в темноте.
Ну, судя по твоему тону, твое желание как-раз и осуществляется. А в Крыму да, со светом проблем нету.
adm1nb3k
Вообщета ТС не указаль, что программу надо запилит на баше.. Это задача от stepic`а..
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB