ValueError + 重复我想不通

ValueError + repetition I can't figure out

我是编程新手。我必须为计算器编写脚本。 我有两个问题:

  1. 我的第 3 个输入数字提示重复出现,我不确定为什么。
  2. 我得到的是 ValueError 而不是计算,但我不知道我做错了什么。

这是我的代码:

def input_number1():
    prompt = 'Enter a number\n'
    num1 = int(input(prompt))
    if num1 <= 0:
        print('Error')
        input_number1()
    else:
        return num1


input_number1()


def input_operator():
    prompt = 'Enter [1] to add, [2] to substract, [3] to multiply or [4] to divide?\n'
    operator = int(input(prompt))
    if operator < 1 or operator > 4 :
        print('error')
        input_operator()
    else:
        return operator


input_operator()


def input_number2():
    prompt = 'Enter a number\n'
    num2 = int(input(prompt))
    if num2 <= 0 :
        print('Error')
        input_number2()
    else:
        return num2


input_number2()


num1 = input_number1()
operator = input_operator()
num2 = input_number2()


def do_calc():
    if operator == 1:
        print(num1 + num2)
    elif operator == 2:
        print(num1 - num2)
    elif operator == 3:
        print(num1 * num2)
    else:
        print(num1 / num2)


do_calc()

有人能给我指出正确的方向吗?

这里的主要错误是您在函数定义之后调用了 input_number1()input_operator()input_number2(),所以它们在函数定义之后调用了一次并且它们的 return 值被忽略,然后再次实际存储和计算结果。

关于 ValueError 我似乎找不到它可能在哪里,对我来说代码在解决主要问题后工作正常。问题出在哪条线上?