Python 打印范围内数字的各个数字
我试图让用户输入一个三位数的数字,介于100和999之间,然后输出各个数字。如果输入不在三位数之内,则要求他们再次输入。如果我输入一个三位数的数字,它会起作用,对于一个字符串,重复询问会起作用,但是一个不在这个范围内的数字不起作用。相反,它打印单词FALSE的前三个索引。我如何改变这个Python 打印范围内数字的各个数字,python,Python,我试图让用户输入一个三位数的数字,介于100和999之间,然后输出各个数字。如果输入不在三位数之内,则要求他们再次输入。如果我输入一个三位数的数字,它会起作用,对于一个字符串,重复询问会起作用,但是一个不在这个范围内的数字不起作用。相反,它打印单词FALSE的前三个索引。我如何改变这个 while True: try: number=int(input("Enter a three digit number:")) in range(99,1000) break
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])
这就是你要找的吗
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
首先,您的代码中有一些bug/错误 你应该在另一行输入范围99999 为什么要将输入转换为数字,然后再转换回字符串?把它当作一根绳子。 在解决了这些bug之后,下面是我修复代码的步骤 我删除了输入函数周围的int函数。只需根据需要使用int 我删除了99,999的范围,因为这是无关的 我还删除了try/except块,因为这是不必要的 我使用if语句代替try/except块。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])
1.你的缩进消失了。2.您正在将in操作的结果分配给数字,而不是输入。让它成为一个单独的步骤。@jonrsharpe我对这类东西很陌生,你能解释一下如何让它成为一个单独的步骤吗?好的,你知道你在同一条线上是怎么做的吗?换一种说法,我还是不明白你的意思。如何将其分配到其他行?请解释在输入一个三位数的数字时,删去你必须输入的行。这就是全部。然后您可以对数字执行其他操作。我不会用勺子喂你,那不是为什么。是的,实际上用古斯贝里先生的回答,它比我的干净多了。但是,您需要将>3更改为=3.这意味着它将只接受3个数字的长度。看起来OP只需要3位数字,因此检查应该是lennumber=3此外,isdigit将无法过滤零起始输入数字,如001。OP的想法是正确的,但实施方式是错误的……您也可以使用not 99intnumber@Copperfield非常好,谢谢。我将在中编辑这些。我完全忘记了Python已经链接了比较。