You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复while循环判断随机数是否在列表中的TypeError错误

修复Python随机数循环代码的TypeError问题

错误原因

你代码中的any(random_number == list)写法完全错误:random_number == list会返回一个布尔值(比如初始的0 == [1,2,3,4,5]结果是False),而any()函数要求传入可迭代对象(比如列表、生成器),因此触发TypeError: 'bool' object is not iterable。

修复后的代码

首先不要用list作为变量名(这会覆盖Python内置的list类型),然后直接用成员运算符in判断随机数是否在目标列表中,这才是符合需求的写法:

import random

target_numbers = [1, 2, 3, 4, 5]
# 先初始化一个随机数,避免初始值0不在列表里导致循环直接跳过
random_number = random.randint(1, 10)

while random_number in target_numbers:
    print(random_number)
    # 生成新的随机数,用于下一次循环判断
    random_number = random.randint(1, 10)

逻辑说明

  • 循环条件random_number in target_numbers直接判断当前随机数是否属于目标列表,完全匹配你“只要生成的随机数是列表中的元素就持续循环”的需求
  • 先初始化随机数而非用0,避免程序一开始就因为0不在列表里直接退出循环
  • 循环内先打印当前符合条件的随机数,再生成新的随机数,直到生成的数不在列表中时终止循环

内容的提问来源于stack exchange,提问作者Raka Wiratama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 09:57:06