【问题标题】:Python basic Calculator program doesn't return answerPython基本计算器程序不返回答案
【发布时间】:2016-08-26 15:10:50
【问题描述】:

所以我想弄清楚如何用我在python中学到的东西制作一个计算器,但我就是不能让它给我答案。

这是我目前的代码:

def add(x, y):
    return x + y

def subtract (x, y):
    return x - y


def divide (x, y):
    return x / y


def multiply (x, y):
    return x / y


print("What calculation would you like to make?")
print("Add")
print("Subtract")
print("Divide")
print("Multiply")


choice = input("Enter choice (add/subtract/divide/multiply)\n")


num1 = float(input("Enter first number: "))
num2 = float(input("Enter second number: "))        

if choice == ("add, Add"):
    print(add(num1,num2))

elif choice == ("subtract, Subtract"):
    print(subtract(num1,num2))

elif choice == ("divide, Divide"):
    print(divide(num1,num2))

elif choice == ("multiply, Multiply"):
    print(multiply(num1,num2))`

【问题讨论】:

  • 为了帮助捕获这样的错误,请尝试在 if/elif 块的末尾添加一个“else”块 - 然后你会看到它与你的任何选择都不匹配,如果你到达'其他'
  • 最后我确实有一个 else 但我删除了它,因为它一直在执行它,所以这意味着它上面的代码没有被选中,因此出了什么问题?
  • 是的,就是这个意思。删除 else 只是意味着您看不到它跳过其他选择,它不会改变它们是否匹配。

标签: python calculator


【解决方案1】:

代替:

choice == ("add, Add")

你想要:

choice in ["add", "Add"]

或者更有可能:

choice.lower() == "add"

为什么?您正在尝试检查选择输入是否等于代码中的元组(“添加,添加”),这不是您想要的。相反,您想检查选择输入是否在列表 ["add", "Add"] 中。或者,处理此输入的更好方法是将输入小写并将其与您想要的字符串进行比较。

【讨论】:

  • aah 所以按照我的做法,您必须输入 add,Add 而不是其中任何一个!?非常感谢
【解决方案2】:

我有一个非常基本的计算。你可以试试,这样你就可以从中学习。而真:

firstNum = int(input('first number'))
op = input('enter operation')
secondNum = int(input('second number'))

if op == '-':
    print(firstNum - secondNum)
elif op == '+':
    print(firstNum + secondNum)
elif op == '*':
    print(firstNum * secondNum)
elif op == '/':
    print(firstNum / secondNum)
else:
    print('ERROR, You must enter an operation.')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    相关资源
    最近更新 更多