试图制作一个计算器,但代码不起作用。怎么修?

Trying to make a calculator, but code isn't working. How to fix?

这个程序应该是一个计算器。当我 运行 程序打印操作时

我不确定如何解决这个问题。几天来,我一直在尝试制作一个简单的计算器 运行s 在终端中,但似乎没有任何效果。我想我需要重新定义操作 var 来打印它。我不确定该怎么做。

#The functions of this program #   
def add(num1, num2):
    return (num1 + num2)

def sub(num1,num2):
    return (num1 - num2)

def mul(num1, num2):
    return (num1 * num2)

def div(num1, num2):
    return (num1 / num2)

##The variables of this program ##
num1 = input ("Number 1: ")
num2 = input ("Number 2: ")
operation = input ("Operation: ")

###The if statements of this program ### 
if operation == "add":
      (num1 + num2)

elif operation == "sub":
      (num1 - num2)

elif operation == "mul":
      (num1 * num2)

elif operation == "div":
      (num1 / num2)

####The final code to print the product ####
print operation

您没有在 if 语句中调用您的函数

    if operation == "add":
          print(add(num1,  num2))

    elif operation == "sub":
          print(sub(num1, num2))

    elif operation == "mul":
          print(mul(num1, num2))

    elif operation == "div":
          print(div(num1,  num2))

另请注意,您可以使用 dict 获取函数并对其求值

ops = {'add': add,
       'sub': sub,
       'mul': mul,
       'div': div}

if operation in ops:
    print(ops[operation](num1, num2))
else:
    print('Invalid operator requested')

您的代码中存在一些问题:

  • 您没有调用您定义的函数。
  • 您不是在打印结果,而是在打印运算符(甚至不正确)。
  • 您正在对字符串而不是数字(input returns 字符串)应用操作。
  • 在 Python-2.x.
  • 中使用 raw_input 而不是 input

解决方案:

#The functions of this program #   
def add(num1, num2):
    return (num1 + num2)

def sub(num1,num2):
    return (num1 - num2)

def mul(num1, num2):
    return (num1 * num2)

def div(num1, num2):
    return (num1 / num2)

##The variables of this program ##
num1 = float(raw_input("Number 1: "))   # convert the input to float
num2 = float(raw_input("Number 2: "))   # convert the input to float
operation = raw_input("Operation: ")

# The result variable, it holds an error message, in case the use inputs another operation
result='Unsupported operation'

###The if statements of this program ### 
if operation == "add":
      result = add(num1, num2)

elif operation == "sub":
      result = sub(num1, num2)

elif operation == "mul":
      result = mul(num1, num2)

elif operation == "div":
      result = div(num1, num2)

####The final code to print the product ####
print result

这是您需要的......

python 3及以下代码

确保您使用的是 python3 而不是 python

例如root@Windows-Phone:~$ python3 anyName.py


#The functions of this program 
def add(num1, num2):
 return (num1 + num2)

def sub(num1,num2):
 return (num1 - num2)

def mul(num1, num2):
 return (num1 * num2)

def div(num1, num2):
 return (num1 / num2)

#The variables of this program
num1 = int(input ("Number 1: "))
num2 = int(input ("Number 2: "))
operation = input ("Operation: ")

#The if statements of this program 
if operation == "add":
  print(add(num1, num2))

if operation == "sub":
  print(sub(num1 ,num2))

if operation == "mul":
  print(mul(num1,num2))

if operation == "div":
  print(div(num1,num2))