haoge404407 发表于 2020-5-6 15:22:04

python的应用


请将1000个学生随机分到30个班级里,每个班级人数不能超过34人,输出分配结果。
格式示例为: 1班30人,名单为……
用python编个程序

ba21 发表于 2020-5-6 15:30:09

用随机数不就行了

_2_ 发表于 2020-5-6 15:37:33

不知道你说的名单是什么:
def func(number_of_persons: int, class_: int):
    MAX = 34
    div_ = number_of_persons // class_
    remainder = number_of_persons % class_
    if remainder > MAX:
      return False
    return True

zltzlt 发表于 2020-5-6 15:38:49

_2_ 发表于 2020-5-6 15:37
不知道你说的名单是什么:

{:10_277:}好好看看题

_2_ 发表于 2020-5-6 15:41:31

zltzlt 发表于 2020-5-6 15:38
好好看看题

不看题,随便写{:10_256:}

haoge404407 发表于 2020-5-6 15:42:37

zltzlt 发表于 2020-5-6 15:38
好好看看题

所以,怎么写?{:10_266:}

sunrise085 发表于 2020-5-6 15:43:24

本帖最后由 sunrise085 于 2020-5-6 15:49 编辑

import random
stu_num=1
stu_class=dict()
while stu_num<1001:
    temp=random.randint(1,30)   #随机一个班级
    if temp in stu_class:         #若班级已经有人
      if len(stu_class)<34:#若班内人数没超过34人
            stu_class.append(stu_num)   #将该同学分配带这个班级
            stu_num+=1         #下一位同学
    else:      #若这个班级还没有人
      stu_class.setdefault(temp,)#创建这个班级并把该同学分配到这个班级
      stu_num+=1       #下一位同学
for key in stu_class:
    print("班级号:",key,"学生人数:",len(stu_class))
    print("学生学号:",stu_class)

haoge404407 发表于 2020-5-6 15:43:45

_2_ 发表于 2020-5-6 15:37
不知道你说的名单是什么:

就是生成一个第几班多少人,一个班人数不能超过34人,而且生成随机数相加等于1000

haoge404407 发表于 2020-5-6 15:47:40

sunrise085 发表于 2020-5-6 15:43


写的很好,但是人数好像超1000人了{:10_257:}

sunrise085 发表于 2020-5-6 15:49:07

haoge404407 发表于 2020-5-6 15:47
写的很好,但是人数好像超1000人了

你再好好看看,人数怎么超1000人了?

haoge404407 发表于 2020-5-6 15:49:15

sunrise085 发表于 2020-5-6 15:43


等等,不好意思看错了,对的对的

zwhe 发表于 2020-5-29 10:16:04

{:9_227:}
页: [1]
查看完整版本: python的应用