询问直到输入在列表中?
Asking until the input is in the list?
试图理解 while 循环,但在输入一个不在列表中的数字后,它不会继续询问,直到它是列表中的数字之一。
number = 12
while number not in [0,1,2,3,4]:
number = input("type a number: ")
print(number)
if number in [0,1,2,3,4]:
print('one of those numbers')
else:
break
print('not one of those numbers')
如果您键入 4343,上面给出了这个:
type a number: 4343
4343
not one of those numbers
如果您单步执行代码,您会看到“number”变量得到了您输入的值 4343。然后您检查 number 是否在 0-4 的列表中。它不是,所以执行沿着“else”分支进行,这是一个中断。 Break 将“中断”循环的执行,因此接下来打印的是“不是那些数字之一”并且执行停止并且不会要求您进行其他输入。
如果你输入一个像“4”这样的数字会发生什么?嗯,和我想的一样。那是因为你的输入是一个字符串,而不是一个数字,你问的是字符串“4”是否在数字列表中,但事实并非如此。您需要将输入解析为 int,您可以通过将输入调用包装在“int”函数中来实现 - int(input(“Type a number:”)) 现在“number”将是一个 int,而不是一个字符串.
number = 12
while number not in [0,1,2,3,4]:
number = int(input("type a number: "))
print(number)
if number in [0,1,2,3,4]:
print('one of those numbers')
break
else:
print('not one of those numbers')
continue
正如@inteoryx 所说,当您提供输入时,它是一个默认字符串值。您必须将其转换为整数,如果数字不在列表中,则使用 break 语句。 break 使您脱离循环,您应该改用 continue 语句。我在 if 语句中添加了 break,如果数字在列表中,它会让你跳出循环。
试图理解 while 循环,但在输入一个不在列表中的数字后,它不会继续询问,直到它是列表中的数字之一。
number = 12
while number not in [0,1,2,3,4]:
number = input("type a number: ")
print(number)
if number in [0,1,2,3,4]:
print('one of those numbers')
else:
break
print('not one of those numbers')
如果您键入 4343,上面给出了这个:
type a number: 4343
4343
not one of those numbers
如果您单步执行代码,您会看到“number”变量得到了您输入的值 4343。然后您检查 number 是否在 0-4 的列表中。它不是,所以执行沿着“else”分支进行,这是一个中断。 Break 将“中断”循环的执行,因此接下来打印的是“不是那些数字之一”并且执行停止并且不会要求您进行其他输入。
如果你输入一个像“4”这样的数字会发生什么?嗯,和我想的一样。那是因为你的输入是一个字符串,而不是一个数字,你问的是字符串“4”是否在数字列表中,但事实并非如此。您需要将输入解析为 int,您可以通过将输入调用包装在“int”函数中来实现 - int(input(“Type a number:”)) 现在“number”将是一个 int,而不是一个字符串.
number = 12
while number not in [0,1,2,3,4]:
number = int(input("type a number: "))
print(number)
if number in [0,1,2,3,4]:
print('one of those numbers')
break
else:
print('not one of those numbers')
continue
正如@inteoryx 所说,当您提供输入时,它是一个默认字符串值。您必须将其转换为整数,如果数字不在列表中,则使用 break 语句。 break 使您脱离循环,您应该改用 continue 语句。我在 if 语句中添加了 break,如果数字在列表中,它会让你跳出循环。