I've tried Simple Python Calculator with Maintaining past history with it. The word "None" is getting printed after each calculations. How to remove that "None" word from my code
Here is my code for python calculator!!
calculations = []
def record_history(args):
calculations.append(args)
def history():
if calculations == []:
print("No past calculations to show")
else:
for i in calculations:
print(i)
def add(a,b):
return a+b
def subtract(a,b):
return a-b
def multiply (a,b):
return a *b
def divide(a,b):
try:
return a/b
except Exception as e:
print(e)
def power(a,b):
return a**b
def remainder(a,b):
return a % b
def select_op(choice):
if choice == '#':
return -1
elif (choice == '$'):
return 0
elif (choice in ('+','-','*','/','^','%')):
while (True):
num1s = (input("Enter first number: "))
print(num1s)
if num1s.endswith('$'):
return 0
if num1s.endswith('#'):
return -1
try:
num1 = float(num1s)
break
except:
print("Not a valid number,please enter again")
continue
while (True):
num2s = str(input("Enter second number: "))
print(num2s)
if num2s.endswith('$'):
return 0
if num2s.endswith('#'):
return -1
try:
num2 = float(num2s)
break
except:
print("Not a valid number,please enter again")
continue
last_calculation = ""
if choice == '+':
result = add(num1, num2)
elif choice == '-':
result = subtract(num1, num2)
elif choice == '*':
result = multiply(num1, num2)
elif choice == '/':
result = divide(num1, num2)
elif choice == '^':
result = power(num1, num2)
elif choice == '%':
result = remainder(num1, num2)
else:
print("Something Went Wrong")
last_calculation = "{0} {1} {2} = {3}".format(num1, choice, num2, result)
print((last_calculation ))
print((record_history(last_calculation)))
elif choice == "?":
history()
else:
print("Unrecognized operation")
while True:
print("Select operation.")
print("1.Add : + ")
print("2.Subtract : - ")
print("3.Multiply : * ")
print("4.Divide : / ")
print("5.Power : ^ ")
print("6.Remainder: % ")
print("7.Terminate: # ")
print("8.Reset : $ ")
print("8.History : ? ")
# take input from the user
choice = input("Enter choice(+,-,*,/,^,%,#,$,?): ")
print(choice)
if(select_op(choice) == -1):
#program ends here
print("Done. Terminating")
exit()
The output is,
Select operation.
1.Add : +
2.Subtract : -
3.Multiply : *
4.Divide : /
5.Power : ^
6.Remainder: %
7.Terminate: #
8.Reset : $
8.History : ?
Enter choice(+,-,*,/,^,%,#,$,?): ?
No past calculations to show
Select operation.
1.Add : +
2.Subtract : -
3.Multiply : *
4.Divide : /
5.Power : ^
6.Remainder: %
7.Terminate: #
8.Reset : $
8.History : ?
Enter choice(+,-,*,/,^,%,#,$,?): -
Enter first number: 2
Enter second number: 3
2.0 - 3.0 = -1.0
None
Select operation.
1.Add : +
2.Subtract : -
3.Multiply : *
4.Divide : /
5.Power : ^
6.Remainder: %
7.Terminate: #
8.Reset : $
8.History : ?
Enter choice(+,-,*,/,^,%,#,$,?): ?
2.0 - 3.0 = -1.0
Select operation.
1.Add : +
2.Subtract : -
3.Multiply : *
4.Divide : /
5.Power : ^
6.Remainder: %
7.Terminate: #
8.Reset : $
8.History : ?
Enter choice(+,-,*,/,^,%,#,$,?): #
Done. Terminating
How to Remove the extra None ...