我试过简单的Python计算器,用它来维护过去的历史。单词“None”在每次计算后被打印出来。如何从我的代码中删除这个单词
这里是我的代码为Python计算器!!
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()
输出为,
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
如何删除多余的None...
1条答案
按热度按时间kqlmhetl1#
问题就在这里:
函数
record_history
不返回值,因此它隐式返回None
。不要试图打印调用结果(即None
),只需将上面的代码替换为以下代码来调用它: