ValueError + 重复我想不通
ValueError + repetition I can't figure out
我是编程新手。我必须为计算器编写脚本。
我有两个问题:
- 我的第 3 个输入数字提示重复出现,我不确定为什么。
- 我得到的是
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
我似乎找不到它可能在哪里,对我来说代码在解决主要问题后工作正常。问题出在哪条线上?
我是编程新手。我必须为计算器编写脚本。 我有两个问题:
- 我的第 3 个输入数字提示重复出现,我不确定为什么。
- 我得到的是
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
我似乎找不到它可能在哪里,对我来说代码在解决主要问题后工作正常。问题出在哪条线上?