Create a calculator using a dictionary ...
''' dict_calculator101.py
create a simple reverse polish calculator using a dictionary
'''
import math
def do_op(op, a=1, b=1):
"""use of a dictionary similar to C's switch/case"""
return {
'+': lambda: a + b,
'-': lambda: a - b,
'*': lambda: a * b,
'/': lambda: a / b,
'//': lambda: a // b, # floor
'**': lambda: a ** b, # power
'sin': lambda: math.sin(a),
'cos': lambda: math.cos(a),
'asin': lambda: math.asin(a),
'acos': lambda: math.acos(a)
}[op]()
# testing ...
# 355/113.0 pi approx.
print(do_op('/', 355, 113.0)) # 3.1415929203539825
# sqroot(25)
print(do_op('**', 25, 0.5)) # 5.0
# asin(sin(0.5))
print(do_op('asin', do_op('sin', 0.5))) # 0.5
Your mission is to expand the dictionary.