Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python I';我试图打印出5个随机的3个字母的字符串,但每次我尝试时,它都告诉我int类型没有len_Python - Fatal编程技术网

Python I';我试图打印出5个随机的3个字母的字符串,但每次我尝试时,它都告诉我int类型没有len

Python I';我试图打印出5个随机的3个字母的字符串,但每次我尝试时,它都告诉我int类型没有len,python,Python,我想从这个列表中打印出一组5个随机响应,但每次我尝试时都会收到错误消息,说int类型没有len 我已经尝试了我能想到的一切,但我只是一个学生,不知道我在做什么 import random num = random.randrange(1,6) endings = { 1: "ing", 2: "end", 3: "axe", 4: "gex", 5: "

我想从这个列表中打印出一组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,因为它是一本字典,有很多条目

random。选择(…)
将生成一个介于0和字典长度之间的随机数。然后,它将尝试使用该号码访问字典。如果有结果,您将取回字典中的项

该项目可能是“ing”,因此该项目的长度为3(以及所有其他项目)

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

  • 如果使用值0访问词典,它将由于键错误而崩溃,因为没有像
    0:“abc”
  • 5号物品永远不会被挑选
  • 您可能想要的:

    • 列表(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)
    

    你到底想做什么?我不明白你说的错误,只是不可能,所以这就是你试图运行的完整代码,你能分享完整的错误信息吗?首先,这不是一个列表,而是一本字典。第二,你说你想从你的“列表”中得到5个随机响应,但你打印的是值的长度,这个长度永远是你示例中的3个。