3. def __init__(self, n1, n2):
self.n1 = n1
self.n2 = n2
#return a dictionary of all arithmetic operations
def allInOne(self):
return {"add":self.plus(),
"sub":self.subtract(),
"mult":self.multiply(),
"div": self.divide()}
#check a value is within the given range lr..hr
#helper procedure
@staticmethod
def IsInRange(lr, hr, n):
return lr < n and n < hr
#add 2 numbers
4. def plus(self):
add = self.n1 + self.n2
return add
#subtract 2 numbers
def subtract(self):
sub = self.n1 - self.n2
return sub
#multiply 2 numbers
def multiply(self):
mult = self.n1 * self.n2
return mult
#division, n2 should not be zero
def divide(self):
try:
div = self.n1/(self.n2 + 0.0)
5. return div
except ZeroDivisionError as e:
print("The result of %s/%s = %s" %
(self.n1, self.n2,"You cannot divide by Zero"))
except Exception :
print("Invalid input" , self.n1, self.n2)
#expression calculator
#will create the calculator object
@staticmethod
def scalc(val):
try:
#the epression is assumed to be comma separated
ns = val.split(",")
#split it into 3 parts
#remove whitespaces in the components
n1 = int(ns[0].strip())
n2 = int(ns[1].strip())
6. op = ns[2].strip()
calc = Calculator(n1, n2)
#create a calculator for doing arithmetic
#better option than mutating self.
#check if operator is one of the supported
if op == "*":
return calc.multiply()
elif op == "/":
return calc.divide()
elif op == "+":
return calc.plus()
elif op == "-":
return calc.subtract()
else:
print("Unknown operator", op)
#in case of invalid input catch the error
7. except Exception :
print("Invalid input:" , val)
W7_first_last.py
# Program name :
# Student Name :
# Course : ENTD220
# Instructor :
# Date : 02/20/2020
# Description : Expression & Arithmetic Calculator using
classes
# Copy Wrong : This is my work
from Mylib import Calculator
def doScalc():
print("---------Expression calculator------------------")
print("Enter the expression with format N1,N2,operator:")
print("Supported operator * , /, -, +")
print("E.g 5, 4, *)")
val = input()
res = Calculator.scalc(val)
print('The result of "' + val + '" is', res)
def showList():
print("1) Add two numbers")
print("2) Multiply two numbers")
print("3) Subtract two numbers")
print("4) Divide two numbers")
print("5) Scalc")
print("6) All in one")
8. print("7) Exit")
def getUserInput():
low = int(input("Enter Lower range:"))
high = int(input("Enter Higher range:"))
n1 = int(input("Enter first number:"))
n2 = int(input("Enter second number:"))
return [low, high, n1 , n2]
def doCalculation(op):
user = getUserInput()
low = user[0]
high = user[1]
n1 = user[2]
n2 = user[3]
if Calculator.IsInRange(low , high, n1) and
Calculator.IsInRange(low , high, n2):
calc = Calculator(n1, n2)
if op == "+":
res = calc.plus()
elif op == "*":
res = calc.multiply()
elif op == "-":
res = calc.subtract()
elif op == "/":
res = calc.divide()
print("%d %s %d = %d" % (n1, op, n2, res))
else:
print("Error: input out of range")
def doAllInOne():
user = getUserInput()
low = user[0]
high = user[1]
n1 = user[2]