Форум сайта python.su
0
Господа добрый день, не судите строго и не бейте ногами. Недавно начал изучение Python, делаю задачи, собственно возникают в процессе вопросы, что “ясен пень”. Так вот такой вот баян, программа калькулятор, которая при выборе операций сложения, вычитания, умножения, деления и возведения в степень, запрашивает два числа и выводит результат, а при выборе sin, cos и tan, запрашивает одно число и соответственно так же выводит результат. Привожу свою программу если конечно так это можно назвать, собственно меня смущает какая то ее “громоздкость” что ли. Может кто ни будь из знатоков подскажет более элегантный вариант что ли. Спасибо за внимание.
import math oper = str(input("Enter your operation: ")) if oper == 'sin' or oper == 'cos' or oper == 'tan': x = float(input("x = ")) if oper == 'sin': print("Your result = ", math.sin(x)) elif oper == 'cos': print("Your result = ", math.cos(x)) elif oper == 'tan': print("Your result = ", math.tan(x)) elif oper == '+'or oper == '-' or oper == '*' or oper == '**' or oper == '/': x1 = float(input("x1 = ")) x2 = float(input("x2 = ")) if oper == '+': print("Your result = ", x1 + x2) elif oper == '-': print("Your result = ", x1 - x2) elif oper == '*': print("Your result = ", x1 * x2) elif oper == '/': print("Your result = ", x1 / x2) elif oper == '**': print("Your result = ", x1 ** x2) else: print("Unsuported operation")
Отредактировано error654 (Авг. 1, 2016 19:27:49)
Офлайн
186
Используй словари:
import math TRIG_OPERATOR = { 'sin' :math.sin, "cos": math.cos, "tan":math.tan} oper = str(input("Enter your operation: ")) if oper in TRIG_OPERATOR: x = float(input("x = ")) print("Your result = ", TRIG_OPERATOR[oper](x)) else: print("Unsuported operation")
Отредактировано Rodegast (Авг. 1, 2016 20:31:08)
Офлайн
0
Спасибо большое, так конечно намного лучше !
Офлайн