Skip to content

Instantly share code, notes, and snippets.

@bungoume
Last active April 5, 2024 11:04
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bungoume/9098967 to your computer and use it in GitHub Desktop.
Save bungoume/9098967 to your computer and use it in GitHub Desktop.
早稲田大学 学籍番号CD(チェックデジット)計算
import re
def faculty(id):
# http://www.waseda.jp/cjl/teachers/2012_fall_cjl_binran.pdf
FACULTY_CODE = (
('1A', '政治経済学部'),
('1B', '法学部'),
('1C', '第一文学部'), # 廃番
('1D', '第二文学部'), # 廃番
('1E', '教育学部'),
('1F', '商学部'),
('1G', '理工学部'), # 廃番
('1H', '社会科学部'),
('1J', '人間科学部'),
('2J', '人間科学部eスクール'),
('1K', 'スポーツ科学部'),
('1M', '国際教養学部'),
('1T', '文化構想学部'),
('1U', '文学部'),
('1W', '基幹理工学部'),
('1X', '創造理工学部'),
('1Y', '先進理工学部'),
('31', '大学院政治学研究科'),
('32', '大学院経済学研究科'),
('33', '大学院法学研究科'),
('34', '大学院文学研究科'),
('35', '大学院商学研究科'),
('36', '大学院理工学研究科'),
('37', '大学院教育学研究科'),
('38', '大学院人間科学研究科'),
('39', '大学院社会科学研究科'),
('40', '大学院アジア太平洋研究科'),
('42', '大学院国際情報通信研究科'),
('43', '大学院日本語教育研究科'),
('44', '大学院情報生産システム研究科'),
('45', '大学院公共経営研究科'),
('46', '大学院ファイナンス研究科'),
('47', '大学院法務研究科'),
('48', '大学院会計研究科'),
('50', '大学院スポーツ科学研究科'),
('51', '大学院基幹理工学研究科'),
('52', '大学院創造理工学研究科'),
('53', '大学院先進理工学研究科'),
('54', '大学院環境・エネルギー研究科'),
('55', '大学院教職研究科'),
('6R', '高等学院'),
('6S', '本庄高等学院'),
('6T', '高等学院中学部'),
('92', '別科日本語専修課程(短期日本語集中プログラム)'),
('97', '国際教養学部(SP3)'),
('98', '留学センター'),
('9A', 'オープン教育センター'),
)
return dict(FACULTY_CODE)[id[:2]]
def num(c):
if re.match('^[0-9]+$', c):
c = int(c)
else:
c = ord(c) - 64
return c
#2J,9A,1T,1U,6S,6Tは正誤不明
def calc_cd(student_id):
id = student_id.upper()
if not re.match('^[0-9A-Z]{8}$', id):
return None
s = (num(id[2])*0 + num(id[3])*3 + num(id[4])*4
+ num(id[5])*5 + num(id[6])*6 + num(id[7])*7)
if id[0] == '1':
s += num(id[1])*2
else:
s += (num(id[0])*10+num(id[1]))*2
if id[1] in 'RSTU':
s -= 1
if id[1] in 'WXY':
s -= 3
return (11 - (s % 11)) % 10
print(calc_cd('1W130000'))
-> 3
print(faculty('1W130000'))
-> '基幹理工学部'
Webで実行
https://dl.dropboxusercontent.com/u/2390414/test/student_id.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment