python - 确保 Python 计算器万无一失

标签 python python-3.x object calculator

我正在编写一个基本计算器,它可以处理两个不同的数字。 到目前为止,我设法编写了一个工作原型(prototype),但是在对其进行划分和万无一失的过程中,我遇到了很多问题,所以我将它们发布 分别地。

<小时/>

如果用户未提供合格的运算符(operator),我希望程序重复该问题。这就是我现在的代码:

def optn_query():
    print("Hulk can different things with number!")
    print("YOU!")
    optn = input("What Hulk do with number?! ")
    return optn

是否使用 if 语句来判断输入是否正确?

<小时/>

我还把 return optn 放在那里,这样下一个函数(优雅地称为 hulk_math)就不会中途失败,但它仍然会失败:

Traceback (most recent call last):
  File "hulc.py", line 57, in <module>
    main()
  File "hulc.py", line 13, in main
    hulk_math()
  File "hulc.py", line 41, in hulk_math
    if optn == "+":
NameError: name 'optn' is not defined

我应该怎么做才能解决这个问题?

这是 hulk_math() 本身:

def hulk_math():
    if optn == "+":
        result = num1 + num2
        print("Hulk ADDS!!! Hulk thinks it's {0}!".format(result))
    elif optn == "-":
        result = num1 - num2
        print("Hulk SUBTRACTS!!! Hulk thinks it's {0}!".format(result))
    elif optn == "*":
        result = num1 * num2
        print("Hulk MULTIPLIES!!! Hulk thinks it's {0}!".format(result))
    elif optn == "/":
        result = num1 / num2
        print("Hulk DIVIDES!!! Hulk thinks it's {0}!".format(result))
    main()

最佳答案

您需要实际调用您的函数:

def hulk_math():
    optn = optn_query()
    #The rest of your code

此外,除非 num1num2 在代码中的其他位置定义,以便它们位于 hulk_math 的范围内,否则您的程序将运行在那里也失败了。

关于python - 确保 Python 计算器万无一失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40110778/

相关文章:

python - 无论 Content-Type header 如何,在 Python Flask 中获取原始 POST 正文

python - 凯拉斯输入/输出

python - 为什么 np.var(x) 和 np.cov(x, y) 给我不同的值?

javascript - 使用 JavaScript 对象构造函数更改文本颜色

使用带有原型(prototype)的 setInterval 的 JavaScript 上下文问题

python - 如何在 Python 中只查找总 RAM

python - Django 上下文处理器和表单变量

python - 有没有办法像 re.findIter() 一样从 bs4 findAll() 获取迭代器?

python - 类型错误 : render_template() takes 1 positional argument but 2 were given

JavaScript如何将数组属性提取到另一个数组中?