In this exercise, we would put to use
all the knowledge gained from the beginning to build a calculator app using
functions. The calculator app would do the following:
·
It would have separate functions for addition, subtraction,
multiplication and division. It should also find power, modulus and also
perform integer division.
·
The app would take inputs from the user.
·
The app would ask which operation the user wants to perform.
·
The app would perform the selected operation and print the result out.
·
The app would ask the user if they have finished using the app or not.
·
Doscstings are provided for the functions used. Comments too where
appropriate.
You can compare your code to mine
below.
print('Simple Calculator App')
def add(x,y):
"""Add two numbers"""
return x + y
def subtract(x,y):
'''Subtract two numbers'''
return x - y
def multiply(x,y):
'''Multiply two numbers'''
return x*y
def divide(x,y):
'''Divide two numbers'''
return x/y
def modulus(x,y):
'''Divide two numbers to get modulus'''
return x%y
def power(x,y):
'''Power of two numbers'''
return x**y
def integer_division(x,y):
'''Integer division on two numbers'''
return x//y
def check_if_user_has_finished():
"""
Checks that the user wants to finish or not.
Performs some verification of the input."""
ok_to_finish = True
user_input_accepted = False
while not user_input_accepted:
user_input = input('Do you want to finish (y/n): ')
if user_input == 'y':
user_input_accepted = True
elif user_input == 'n':
ok_to_finish = False
user_input_accepted = True
else:
print('Response must be (y/n),
please try again')
return ok_to_finish
def get_operation_choice():
input_ok = False
while not input_ok:
print('Menu Options are:')
print('1. Add')
print('2. Subtract')
print('3. Multiply')
print('4. Divide')
print('5. Modulus')
print('6. Power')
print('7. Integer Division')
print('-----------------')
user_selection = input('Please make a selection: ')
if user_selection in ('1', '2', '3', '4','5','6','7'):
input_ok = True
else:
print('Invalid Input (must be 1 -
7)')
print('-----------------')
return user_selection
def get_numbers_from_user():
num1 = float(input('Input the first number: '))
num2 = float(input('Input the second number: '))
return num1, num2
def get_integer_input(message):
value_as_string = input(message)
while not value_as_string.isnumeric():
print('The input must be an integer')
value_as_string = input(message)
return int(value_as_string)
finished =False
while not finished:
result = 0
menu_choice = get_operation_choice()
n1, n2 = get_numbers_from_user()
if menu_choice == '1':
result = add(n1, n2)
elif menu_choice == '2':
result = subtract(n1, n2)
elif menu_choice == '3':
result = multiply(n1, n2)
elif menu_choice == '4':
result = divide(n1, n2)
elif menu_choice == '5':
result = modulus(n1, n2)
elif menu_choice == '6':
result = power(n1, n2)
elif menu_choice == '7':
result = integer_division(n1, n2)
#Get the operation from the user
#Get the numbers from the user
#Select the operation
print('Result:', result)
print('====================')
finished = check_if_user_has_finished()
#Determing if the user has finished
print('Bye')