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

打印随机字符串时报Traceback:TypeError: object of type 'int' has no len()

报错原因说明
  1. 第一个报错的核心是变量名覆盖冲突
  • 你预先定义的存储数字字符的列表名称是numbers,但第三个for循环的迭代变量也命名为numbers。Python执行循环时,会把每次迭代得到的整数值(依次为0、1、2……直到nr_numbers-1)赋值给numbers变量,直接覆盖了你原本的列表变量。
  • random.choice()要求传入可迭代的序列对象(比如列表、字符串),此时你传入的numbers已经是int类型的整数,自然会抛出「int类型没有len()方法」的报错。
  1. 修改后数字按顺序输出的原因
    你调整为numb.append(random.choice(str(numbers)))时,这里的numbers依然是被覆盖后的int类型迭代值:
  • 第一次循环迭代值为整数0,转成字符串是"0",random.choice()只能取到字符0
  • 第二次循环迭代值为整数1,转成字符串是"1",random.choice()只能取到字符1
    以此类推,最终输出的数字就会按照0、1、2……的顺序排列,没有随机效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:30:04