提问人:Raka Wiratama 提问时间:6/11/2023 更新时间:6/11/2023 访问量:26
如何通过检查结果是否是列表中的元素来使用 while 函数
How to use while function by checking whether the result is an element from a list or not
问:
我有这个代码
import random
list = [1,2,3,4,5]
random_number = 0
while any(random_number == list):
random_number = random.randint(1,10)
print(random_number)
但是当我尝试执行它时,它显示了以下错误
TypeError:“bool”对象不可迭代
只要生成的随机数是列表的一个元素,我就想循环函数。你能帮我修复那个代码吗?
答:
0赞
Mureinik
6/11/2023
#1
这里有几个问题。
首先,覆盖内置的 .使用其他名称(如 )应该可以帮助您避免这种情况。list
lst
其次,这不是工作方式。 如果传递给它的可迭代对象的任何元素是真值,则返回。如果你必须使用它,你会想要类似的东西,但老实说,你最好只使用内置运算符。any
any
True
any(x == random_number for x in lst)
in
最后,的初始值是 ,它不在列表中,因此永远不会输入循环。相反,您应该将其初始化为列表中的某个值。random_number
0
把这些放在一起,你会得到类似的东西:
import random
lst = [1, 2, 3, 4, 5]
random_number = lst[0]
while random_number in lst:
random_number = random.randint(1, 10)
print(random_number)
0赞
MrE
6/11/2023
#2
此处的代码存在一些问题:
首先,是 Python 关键字(它是类型),因此请避免使用此名称。list
list
然后,在 Python 中,要检查元素是否在列表中,您应该使用关键字。in
第三,如果你正在检查数字是否在列表中,那么你的初始数字应该在列表中,否则它甚至在开始之前就退出了循环。
import random
mylist = [1,2,3,4,5]
random_number = 1
while random_number in mylist:
random_number = random.randint(1,10)
print(random_number)
评论
any
while random_number in list:
random_number
import random
list = [1,2,3,4,5]
random_number = 1
while random_number in list:
random_number = random.randint(1,10)
print(random_number)