创建将打印给用户的条件语句的正确方法是什么?错误:此字段尚未填写'如果用户没有输入整数值。
例如这个陈述:
user_Input = input('Enter a string: ')
if not user_Input:
print('Error: This field has not been filled out')
else:
print(user_Input)
程序将打印('错误:此字段尚未填写')是用户未输入值,但如果我们对整数执行相同操作。让我们说:
user_Input = int(input('Enter an integer: '))
if not user_Input:
print('Error: This field has not been filled out')
else:
print(user_Input)
会产生值错误。
ValueError: invalid literal for int() with base 10: ''
如何在没有值错误的情况下让第二个语句与第一个语句具有相同的输出。
答案 0 :(得分:0)
int("")
无效,因此您需要在之前验证输入字符串,并尝试将其解析为整数。
user_Input = input('Enter a string: ')
if not user_Input:
print('Error: This field has not been filled out')
else:
value = int(user_Input)
print(value)
这只过滤空字符串;用户仍然可以提供无效的字符串。不要试图阻止ValueError
,而是抓住它。尝试像
while True:
user_input = input('Enter a int: ')
try:
value = int(user_input)
except ValueError:
print("Invalid integer '%s', try again" % (user_input,))
else:
break