回覆列表
  • 1 # 冷楓32267653

    在一箇中小型的留學機構之內,很多的同學都是託管為主,而上課的老師可能是國內聘請的老師面授,也可能是在國外的老師透過網上授課,還需要使用付費的網路會議軟體(zoom)。因此,每次排課表都是一件痛苦的工作。其實,也沒有什麼很好的方法,就是一個一個試,如果恰巧大家時間比較充裕,那麼可能一次排成,但有時可能是很久。因此,一個建議的排課系統是很有必要的。

    好在,一般來說,學生和老師的數量不是很多,往往課表的可能性還是很多的。

    1. 必要準備

    Jupyter Notebook

    pandas

    特定格式的Excel 表格

    2. 獲取必要的資料

    電腦需要讀取資料來獲得學生的空餘時間,老師的空餘時間和需要的課程(包括課程的數量,老師和學生,是否需要zoom)。目前,我們可以將課表一週一週的進行安排,一週分為7天,一天分為一定的時段。在Excel表格中,1代表有時間,0代表沒有時間。具體來說,Excel的表格格式如下:

    這是一位託管學生的空閒時間,可以看出時間大部分是空餘的,但是對於一般的老師和同學來說,不一定會如此簡單。

    課程的表格需要如下:

    老師,同學,課程名字和zoom是否需要。

    此處沒有定義課程的數量,一次課佔一行,因為如果定義數量,電腦則會直接把同一種課安排在一起。

    下面進入程式設計階段,主要需要三個部分 讀取資料 ~> 製作課表 ~> 匯出Excel

    3. 讀取所有的資料

    在這裡,我們要求把學生和老師的空餘時間分到不同的資料夾,且Excel為學生或者老師的名字。

    現在假設讀者已經會使用Jupyter Notebook,並且已經安裝好了pandas。

    在terminal輸入:

    jupyter notebook

    在瀏覽器上應該是localhost:8888/tree,進入如下介面:

    在裝有檔案的資料夾下,新建一個notebook file,然後import:

    import re \\regular expression 正則表示式

    import os \\operating system 作業系統

    import numpy as np \\ 用來進行矩陣計算

    import pandas as pd \\ 用來讀取檔案,資料

  • 中秋節和大豐收的關聯?
  • 學習,學著學著,你明白了什麼?