当前位置: 高中信息技术 / 综合题
  • 1. (2023高三下·杭州月考) 小明利用“在线社团报名系统”收集了全校学生的社团报名信息,并将报名数据导出到“社团报名.xlsx”中,如图 1 所示。然后编写 Python 程序对报名数据进行处理,生成分别以班级名和社团名为文件名的 Excel 文件,以便分发给相应的社团指导老师和班主任。

    图 1

    图 2

    1. (1) 在对表格进行数据整理时发现,关于“Jacky.Y” 同学的记录可能存在的数据问题是(选填:A .数据缺失 B .数据异常 C .逻辑错误 D .数据格式不一致)。
    2. (2) 其中生成每个社团名单文件的过程是:先对报名数据按社团名称进行分类,并对选报同一社团的学生按班级进行升序排序,然后生成各个社团名单文件,如图 2所示。对应的程序代码如下,请在划线处填写合适的代码。

      import pandas as pd

      def read_file(filename):

          #读入报名数据的原始文件,并将表中的数据转换成列表,代码略

      def save_file(a): #保存名单到相应社团的 Excel 电子表格文件

          df = pd.DataFrame(a,columns=[“班级”,“姓名”,“选报社团”])

          df.to_excel(  +“.xlsx”,index=False)

      a = read_file(“社团报名.xlsx”)

      n = len(a)

      # 按社团名(参照拼音的字母顺序)进行升序排序,代码略

      # 统计各社团人数,存在列表 rs 中,rs=[[“滑板社”,36],…],代码略

      s = 0

      for i in range(len(rs)):

         

          left,right = s, s+num-1

          while left < right:

              imin = imax = left

              for k in range(left+1,right+1):

                  if a[k][0] < a[imax][0]:

                      imin = k

                  elif a[k][0] > a[imax][0]:

                      imax = k

              if imin != left:

                  a[imin],a[left] = a[left],a[imin]

              if imax == left:

                 

              if imax != right:

                  a[imax],a[right] = a[right],a[imax]

              left = left + 1; right = right–1

      s += num

微信扫码预览、分享更方便