我正在写一个可以处理两个不同数字的基本计算器。
到目前为止,我设法编写了一个可行的原型,但是在进行分割和万无一失的同时,我遇到了许多问题,因此我将其发布了
分别。



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

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/

10-13 02:53