我正在尝试让用户输入一个三位数字,因此介于100和999之间,然后输出各个数字。如果输入不在三位数字内,则要求他们再次输入。如果我输入一个三位数的数字,它会起作用,而对于一个字符串,重复请求再次起作用,但不在该范围内的数字不起作用。相反,它打印单词FALSE的前三个索引。我该如何改变?
while True:
try:
number=int(input("Enter a three digit number:")) in range(99,1000)
break
except ValueError:
print("Enter a three digit number:")
continue
number=str(number)
print("Your digits are: " ,number[0] ,number[1] ,number[2])
答案 0 :(得分:1)
这就是你要找的东西吗?
while True:
try:
number=int(input("Enter a three digit number:"))
number=str(number)
except ValueError:
print("Please only enter in numbers.")
continue
if len(number)!=3:
print("Not a three digit number.")
else:
print("Your digits are: " ,number[0] ,number[1] ,number[2])
break
答案 1 :(得分:0)
首先,您的代码中存在一些错误/错误。
in range(99, 999)
放在单独的一行在解决了这些错误之后,我就采取了以下措施来修复您的代码。
我从int()
函数中删除了input()
函数。只需根据需要使用int()
。
我删除了in range(99, 999)
因为无关紧要。
我还删除了try/except
块,因为这是不必要的。
在try/except
块的位置,我使用if语句。 if语句测试输入是否为整数,然后测试它是否为三位整数。
以下是我修改后的代码:
while True:
number=input("Enter a three digit number:")
if not (number.isdigit() and 99 < int(number) < 1000):
print("Please Enter a three digit number.")
continue
break
print("Your digits are: " ,number[0] ,number[1] ,number[2])