ValueError + повторение Я не могу понять
Я новичок в программировании. Я должен написать скрипт для калькулятора. У меня есть две проблемы с этим:
- Мой третий запрос на ввод номера повторяется, и я не уверен, почему.
- Я получаю
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
Я не могу найти, где это может быть, для меня код работает нормально после исправления основной проблемы. На какой линии возникает проблема?