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

Python打印5个随机3字母字符串时报错int类型无len方法的问题咨询

报错核心原因

你遇到的「int类型不存在len方法」报错,根源出在最后一行的随机选择逻辑上:

  • random.choice()的功能是从传入的可索引序列里随机选1个元素返回,你直接把字典endings传入该函数时,函数实际从字典里提取的可选元素是所有的键(也就是1、2、3、4、5这类整数),最终返回值是整数类型的键
  • 你后续直接对这个返回的整数执行len()操作,因为整数本身没有长度属性,自然会触发类型报错
可运行的修正方案

要实现从预设字典里随机选取3字母字符串的目标,只需要把字典里存储的所有字符串值提取成独立列表,再传给random.choice()即可,修正后的完整代码如下:

import random

endings = {
    1: "ing",
    2: "end",
    3: "axe",
    4: "gex",
    5: "goh",
}

stu_num = int(input("how many students will there be? "))

for x in range(stu_num):
    # 提取字典中所有3字母字符串组成列表,随机选取条目
    random_str = random.choice(list(endings.values()))
    # 直接打印选中的字符串即可,所有预设字符串固定为3个字符
    print(random_str)
优化建议
  • 对新手来说,完全可以去掉冗余的字典结构,直接把3字母字符串存在列表里,例如写为endings = ["ing", "end", "axe", "gex", "goh"],后续随机选择的代码无需改动,逻辑更直观不易出错
  • 原代码中单独写的num = random.randrange(1,6)属于未投入使用的冗余逻辑,可以直接删除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 03:15:04