ValueError + повторение Я не могу понять

Я новичок в программировании. Я должен написать скрипт для калькулятора. У меня есть две проблемы с этим:

  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 ответ

Решение

Основная ошибка здесь в том, что вы звоните input_number1(), input_operator() а также input_number2() после определения функции, поэтому они вызывают один раз после того, как функция определена и их возвращаемое значение игнорируется, затем еще раз для фактического сохранения и вычисления результата.

И о ValueError Я не могу найти, где это может быть, для меня код работает нормально после исправления основной проблемы. На какой линии возникает проблема?

Другие вопросы по тегам