简体   繁体   English

为什么在python代码中打印“无”字

[英]Why "None" word is printed in python code

I've tried Simple Python Calculator with Maintaining past history with it.我已经尝试使用简单的 Python 计算器来维护过去的历史记录。 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!!这是我的 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()

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...如何删除多余的无...

The problem is here:问题在这里:

print((record_history(last_calculation)))

The functoin record_history doesn't return a value, so it implicitly returns None .函数record_history不返回值,因此它隐式返回None Instead of trying to print the result of the call (ie, None ), just call it by replacing the above with:不要试图打印调用的结果(即None ),只需将上面的替换为:

record_history(last_calculation)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM