新高考十二种选科情况下,再选科目的考室安排的探索2.0版

新高考十二种选科情况下,再选科目的考室安排的探索2.0版

上一篇没有解决的几个问题和思考不全面的问题先总览一下:
1、一个总是报警的问题
2、一个总是有一行多的问题
3、没有把四科的安排合成一个表的问题
4、分离学生选的A科和非选A科的效率问题

import pandas as pd                    ##excel处理的模块                                                 
import random                          ##随机模块
import numpy as  np                    ##数组处理模块
# 这两个参数的默认设置都是False 中文行列名的对齐必备
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
#最大显××行,××列 
pd.set_option('display.max_rows', 925)
pd.set_option('display.max_columns',6)

#这里写  学生总体信息文件,本年级为 F:\操作区\考试学生座位安排\姓名-行政班级归属-教学班-采用志愿.xlsx
path1 = 'F:\操作区\考试学生座位安排\姓名-行政班级归属-教学班-采用志愿.xlsx'    #绝对路径
#  这个excel文件 必须要有的一些 列 :姓名 行政班归属    教学班 采用志愿     ps:后期加入  在籍  日语  音美书  体育
path3 = r'F:\操作区\考试学生座位安排\考场容量表.xlsx'
#  这个excel文件 必须要有的列: 容量
####上面为必要的 库  和中文显示设置   
def get_df(path1):
    path11 = path1.split('\\')                           #相对本py文件所在文件夹的路径,当前为同文件夹
    try: 
        data = pd.read_excel(path1)
    except:
        print('请把本py文件和数据源放在同一文件夹内,再次尝试。数据源的文件名为:姓名-行政班级归属-教学班-采用志愿.xlsx')
        data = pd.read_excel(path11[-1])
    return data

#del data['Unnamed: 0']
#data.to_excel('F:\操作区\考试学生座位安排\姓名-行政班级归属-教学班-采用志愿.xlsx',index='')

def getpath():
    print('请输入学生数据源文件路径,如:d:\××\××\文件名.xlsx')
    path = input()
    # 用空写个输入格式 判断 是否正确的 函数    
    return path

def get_subject():
    print('请输入本次 需要按哪一科 安排考室')
    sub = ['化学','生物','政治','地理']
    sub1 = ['化','生','政','地']
    for i in range(len(sub)):
        print('\t[{}]{}'.format(i+1,sub[i]),end=' ')
    print('请输入数字 代表你的选择')
    path = sub1[int(input())-1]
        # 用空写个输入格式 判断 是否正确的 函数    
    return path

def pickout():
    pass

def getready(df1,sub1):          # df1 是一个数据表  ,sub表示科目:物化地,政史地  六科当中的一种
    name_sub1 = []
    xclass_sub1 = []
    for i in range(len(df1.采用志愿)):
        if sub1 in  df1.采用志愿[i] :
            name_sub1.append(df1.姓名[i])
            xclass_sub1.append(df1.行政班归属[i])
    df_sub1 = pd.DataFrame({'姓名':name_sub1,'行政班归属':xclass_sub1})
    print('这里是考室科目为:{} 的考生样表\n'.format(sub1),df_sub1[0:1])
    return df_sub1

def getrest(df1,sub1):          # df1 是一个数据表  ,sub表示科目:物化地,政史地  六科当中的一种
    name_sub1 = []
    xclass_sub1 = []
    for i in range(len(df1.采用志愿)):
        if sub1 not in  df1.采用志愿[i] :
            name_sub1.append(df1.姓名[i])
            xclass_sub1.append(df1.行政班归属[i])
    df_sub1 = pd.DataFrame({'姓名':name_sub1,'行政班归属':xclass_sub1})
    print('这里是科目为:{} 的自习安排样表\n'.format(sub1),df_sub1[0:1])
    return df_sub1

def get_rooms(path3):
    path33 = path3.split('\\')
    try:
        room = pd.read_excel(path3)
    except:
        print('绝对路径出错,尝试相对路径')
        room = pd.read_excel(path33[-1])
    print('这里是考室容量样表\n',room[0:1])
    return room

def randomsort(room,temp_df):
    result_df = temp_df[0:1]
    ##随机把  temp_df 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值