我正在尝试打印出 5 个随机 3 个字母字符串,但每次我尝试时它都会告诉我 int 类型没有 len

  • 本文关键字:int len 类型 打印 随机 字符串 python
  • 更新时间 :
  • 英文 :


我想从这个列表中打印出一组5个随机响应,但每次尝试时都会收到错误消息,说int类型没有len。

我已经尝试了我能想到的一切,但我只是一个学生,不知道自己在做什么。

import random
num = random.randrange(1,6)
endings = {
1: "ing",
2: "end",
3: "axe",
4: "gex",
5: "goh",
}
#print (endings.get(num))
stu_num = int(input("how many students will there be? "))
#print(random.choice(endings))
for x in range (stu_num):
print (len(random.choice(endings)))   

len(endings)是5,因为它是一个字典,有很多条目。

CCD_ 2将生成一个介于0和字典长度之间的随机数。然后,它将尝试使用该号码访问词典。如果有结果,你会把字典里的项目拿回来的。

该项目可能是";ing";,因此该项目的长度是3(对于所有其他项目也是如此(。

但是,请注意,您的字典没有0到4之间的数字,而是有1到5之间的数字。这意味着:

  1. 如果使用值0访问字典,它将由于KeyError而崩溃,因为没有像0: "abc"这样的定义
  2. 项目编号5将永远不会被选中

您可能想要的:

  • list(endings.values()):将值转换为索引从0到4的列表,以便可以拾取所有项
  • 你不想打印学生姓名的长度(3(,而是打印他们的姓名
  • 此外,如果你想挑选5个学生,你不想两次挑选同一个学生。这意味着您需要将所选学生从字典或列表中删除

建议代码:

# ...
students = list(endings.values())
for x in range(stu_num):
picked = random.choice(students)
students.remove(picked)
print(picked)

相关内容

最新更新