代码之家  ›  专栏  ›  技术社区  ›  Lili V.

ValueError+重复我无法理解

  •  1
  • Lili V.  · 技术社区  · 6 年前

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

    1. 我的第三次输入数字的提示会重复,我不知道为什么。
    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()
    

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   Null User    6 年前

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

    关于 ValueError 我似乎找不到它可能在哪里,对我来说,在修复了主要问题之后,代码工作得很好。问题发生在哪条线上?