Форум сайта python.su
Помогите с написанием программы:
Напишите калькулятор. При запуске ваша программа должна ожидать ввода пользователем команды (при этом на экран выводить ничего не нужно). Команды могут быть трех типов:
1)Слово “exit”. В этом случае скрипт должен вывести на экран слово “bye” и завершить работу.
2)Три аргумента через пробел – первый операнд (целое число), операция (одна из “+”, “-”, “*”, “/”, “%”, “**”) и второй операнд (целое число). В этом случае нужно произвести указанную операцию над заданными числами и вывести результат на экран. После этого переходим в режим ожидания новой команды.
3)Любая другая команда из одного аргумента или из трех аргументов, но с операцией не из списка. В этом случае нужно вывести на экран слово “error” и завершить работу."
Заранее спасибо за помощь!
Офлайн
while True: s = input("").replace(" ", "") [exit("Error") for i in s if i not in list(map(str, range(10)))+['+', '-', '*', '/', '%', '**']] print(eval(s))
Офлайн
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
Офлайн
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)
Офлайн
dimy44
-2 - 3
error
Офлайн
Ну вот, так всегда)), ладно
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
Отредактировано dimy44 (Дек. 7, 2014 00:14:53)
Офлайн
dimy44
в Криму что свет есть? А в Одессе виключают
Лучше б всякие пидори сидели в темноте.
Офлайн
alchemistНу, судя по твоему тону, твое желание как-раз и осуществляется. А в Крыму да, со светом проблем нету.
dimy44в Криму что свет есть? А в Одессе виключают Лучше б всякие пидори сидели в темноте.
Офлайн
Вообщета ТС не указаль, что программу надо запилит на баше.. Это задача от stepic`а..
Офлайн