请教如何用Python完成一个将老师随机分配到办公室的程序。

作者&投稿:蔚旺 (若有异议请与网页底部的电邮联系)
如何用python2写一个代码,要求如下:有3个办公室,有8名员工,让8名员工随机分配到3个办公室中,~

先给8个员工编号0~7
接下来就跑代码了
import random
pep = [(x, random.random()) for x in range(8)]
pep.sort(key=lambda x:x[1])
perm = [(2,2,4), (2,3,3), (2,4,2), (3,2,3), (3,3,2), (4,2,2)]
choice = random.choice(perm)
prm1 = [x[0] for x in pep[:choice[0]]]; prm1.sort()
prm2 = [x[0] for x in pep[choice[0]:choice[0]+choice[1]]]; prm2.sort()
prm3 = [x[0] for x in pep[-choice[-1]:]]; prm3.sort()
print(f'{prm1}
{prm2}
{prm3}')

[项目计划]
第一周完成:
选题任务描述(程序的主要用途功能)
设计思路描述
涵盖的主要知识点
选题任务的详细描述
第二周完成:
设计思路详细描述(设计框架,编程注释,流程图+伪码)
(并开始局部编码)

第三周完成:
源代码编写组织调测
第四周完成:
系统联调, debug
剩下的时间:
逛街, 休闲, 吊凯子

# teachers=['a','b','c','d','e','f','g','h','j','k','m']
# offices=[[],[],[],[]]
# 要求是将11名老师随机分配到4个办公室,每个办公室保证至少分配两名老师。


import random

teachers = ['a','b','c','d','e','f','g','h','j','k','m']

offices = [[],[],[],[]]

class Office:
    def __init__(self, num):
        self.teachers_list = []
        self.num = num

    def add(self, x):
        self.teachers_list.append(x)

    def ret(self):
        return self.teachers_list

    def __str__(self):
        return str(self.num)

# 调用系统时间,实现随机数
random.seed()

# 一共3种情况:
# 3 3 3 2 = 11
# 4 2 3 2 = 11
# 5 2 2 2 = 11
case_index = random.randrange(1, 4)
offices_list = []
if case_index == 1:
    # 3 3 3 2
    for e in [3,3,3,2]:
        offices_list.append(Office(e))
elif case_index == 2:
    # 4 2 3 2
    for e in [4,3,2,2]:
        offices_list.append(Office(e))
else:
    # 5 2 2 2
    for e in [5,2,2,2]:
        offices_list.append(Office(e))

# 打乱顺序
random.shuffle(offices_list)

print("办公室随机分配名额如下:")
for office in offices_list:
    print(office, end=" ")

print()
print("开始分配老师:")
# 分配老师
for teacher in teachers:
    while True:
        index = random.randrange(0, len(offices))
        office = offices_list[index]
        if len(office.teachers_list) >= office.num:
            continue
        office.add(teacher)
        break

for i in range(len(offices_list)):
    office = offices_list[i]
    offices[i] = office.ret()
    print(offices[i])

可以运行!请指教!



import random
t = ["a","b","c","d","e","f","g","h","j","k","m"]

bgs = [[],[],[],[]]



while True:
for tname in t:
index = random.randint(0,3)
bgs[index].append(tname)
if len(bgs[0])<2 or len(bgs[1])<2 or len(bgs[2])<2 or len(bgs[3])<2:
bgs = [[],[],[],[]]
else:
break



i=1
for bgsn in bgs:
print("办公室%d"%i)
for tname in bgsn:
print(tname)
i+=1



对无基础的如何学python
0基础学习Python,首先要制定合适的学习路线,有计划地学习可以达到事半功倍的效果。阶段一:Python开发基础 Python全栈开发与人工智能之Python开发基础知识学习内容包括:Python基础语法、数据类型、字符编码、文件操作、函数、装饰器、迭代器、内置方法、常用模块等。阶段二:Python高级编程和数据库开发 Python...

python新手应该怎么学习更好
俗话说的好:兴趣是最好的老师 6、在写过不少基础代码之后,可以去各大Python相关的网站阅读别人的代码,多阅读别人的也是提高自己的编码水平的很好途径,同时,有把自己的代码分享给别人阅读,一边互相交流促进。教别人的时候,其实你已经自己再次思考一次了。最后祝你学有所成,希望对你有所帮助。

零基础如何学Python
3.大型项目模仿 在Python学习中,少不了大型项目实操,如果参加培训学习,这个就比较简单了,往往课程教学中会包含这一项,Python学员可以先自己写一遍,然后再听老师的讲解,通过对比,找到疑惑点和不足之处,然后进行思路和项目的优化;对于未参加Python培训的学员,可以在网上找一些大型项目进行练习,多看...

如何学习python
分享Python学习路线:第一阶段:Python基础与Linux数据库这是Python的入门阶段,也是帮助零基础学员打好基础的重要阶段。你需要掌握Python基本语法规则及变量、逻辑控制、内置数据结构、文件操作、高级函数、模块、常用标准库模板、函数、异常处理、mysql使用、协程等知识点。学习目标:掌握Python的基本语法,具备...

假期如何学好python
3、Python全栈教程: (1)HTTP协议的分析:HTTP格式。 包含知识点:HTTPGET请求的格式 HTTPPOST请求的格式、HTTP响应的格式。(2)HTTP协议的使用(实现Web静态服务器)利用HTTP协议实现Web静态服务器包含知识点:浏览器首先向服务器发送HTTP请求、服务器向浏览器返回HTTP响应、使用类(3)服务器动态资源请求(实现Web动态服务器...

新手怎么学习python?
使用Python完成字符串的各种操作 使用Python re模块进行程序设计 使用Python创建文件、访问、删除文件 掌握import 语句、From…import 语句、From…import* 语句、方法的引用、Python中的包 ②Python软件开发进阶 能够使用Python面向对象方法开发软件 能够自己建立数据库,表,并进行基本数据库操作 掌握非关系数据...

Python 从入门到精通推荐看哪些书籍呢?
《利用Python进行数据分析》这本书籍是数据分析入门必读书籍的,书里详细介绍了利用Python进行操作、处理、清洗和整理数据等方面的基本要点和具体细节。还有大量的实践案例,用Python3个库numpy(数组)、pandas(数据分析)、matplotlib(绘图)应对一般的数据分析完全够用。我当时学习时候,直接学的是这本书,感觉...

Python该怎么入门?
诞生近30年来,很多我们耳熟能详的产品都是基于Python开发出来的,国内的豆瓣、知乎和果壳网都是基于Python开发的,而Youtube、Dropbox和Reddit也是诞生于Python的框架之下。越来越多的人编程新人会选择Python作为他们学习的第一种编程语言加以学习。那么Python改怎么学呢?第一步当然是准备基础,准备运行环境...

初学者python怎么学
阶段二:Python高级级编编程&数据库开发 Python高级级编编程&数据库开发课程内容包括:面向对象介绍、特性、成员变量、方法、封装、继承、多态、类的生成原理、MetaClass、__new__的作用、抽象类、静态方法、类方法、属性方法、如何在程序中使用面向对象思想写程序、选课程序开发、TCP\/IP协议介绍、Socket网络...

Python该怎么入门?
零基础,毫无编程经历自学python怎么样?零基础自Python,其实说难也不难,说不难,难的是需够坚持,足够聪明果你有很强的意志力和学习力,也是可以自学Python的,首先你需要先给自己制定一个具体的学习路线,根据学习路线制定具体的学习方案,将Python知识一步步分解开来学习,这样既不会学的混乱,也能...

扶沟县15539043312: 请教,python脚本指定时间运行 -
娄庾格列: 展开全部1、代码里 while 1: 每秒执行一次,判断当前时间是否是指定时间,如果是,则执行相应代码;否则sleep 1秒,继续.....2、借助 crontab

扶沟县15539043312: 请教python如何执行shell管道命令 -
娄庾格列: Python执行Linux系统命令,即在Python脚本中调用Shell命令,具体有以下四种方法:1、os.system//仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 system(command) -> exit_status Execute the command (a string) in a ...

扶沟县15539043312: python 用start() 和end () 方法计时间 -
娄庾格列: import timedef start_sleep(): time.sleep(3) if __name__ == '__main__': #The start time start = time.clock() #A program which will run for 3 seconds start_sleep() #The End time end = time.clock() print("The function run time is : %.03f seconds" %(end-start)) # End

扶沟县15539043312: 请教已经用Python中的pandas写好了一段代码,建立好了一个BUTTON事件,怎么点击这个BUTTON来执行这段代码 -
娄庾格列: 将pandas那部分代码写成函数func()在__init__()这个方法里添加一行代码将按钮与这个函数func()绑定, 如下 self.btn.clicked.connect(func)btn是按钮的名, 在ui文件里看是什么名, 比如是button1 那么就这样: self.button1.clicked.connect(func)应该很清楚了吧

扶沟县15539043312: python中怎么用循环输出一个很长的字符串 -
娄庾格列: str1="" str_list=[] for i in range(5): N=input("please enter the number:") str1+=str(N) str_list.append(str(N)) print str1 print str_list

扶沟县15539043312: 请教各位如何用python创建文件和文件夹 -
娄庾格列: python创建文件 >>>f=open('f.txt','w') # r只读,w可写,a追加 >>>for i in range(0,10):f.write(str(i)+'\n') >>> f.close()python创建文件夹 import os os.makedirs("目录")如果解决了您的问题请采纳! 如果未解决请继续追问!

扶沟县15539043312: 请教,Python 如何将一变量做为函数名 -
娄庾格列: 可以把变量设置为全局变量:def fun1(): global var1 ...def fun2(): global var1

扶沟县15539043312: 如何用python将dataframe更新原来的sql表 -
娄庾格列: pandas是python环境下最有名的数据统计包,而DataFrame翻译为数据框,是一种数据组织方式,这么说你可能无法从感性上认识它,举个例子,你大概用过Excel,而它也是一种数据组织和呈现的方式,简单说就是表格,而在在pandas中用...

扶沟县15539043312: 用 PYTHON写FUNCTION
娄庾格列: &gt;&gt; def s(M): ... if M==1: ... return 1 ... else: ... return s(M-1)+1.0/M &gt;&gt;&gt; import math &gt;&gt;&gt; def Gauss(x,m=0,s=1): ... return (1/(math.sqrt(2*math.pi)*s))*math.exp(-0.5*((x-m)/s)**2) ... &gt;&gt;&gt; li = [-5,-4,-3,-2,-1,0,1,2,3,4,5] &gt;&gt;...

扶沟县15539043312: 如何用python实现用一个字符定义一系列事件 -
娄庾格列: 不太明白你的意思,应该你是想自定义一个类class吧 class example(object): def __init__(self,x,y): # 初始化实例的参数 self.x = x self.y = y def myFunction(self): # 类的方法,不知道是不是你所说的事件 def __str__(self): # 决定print的时候显示...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网