注:添加班级和删除班级尚未完成
import time
import datetime
# 判断班级是否存在
def isClass():
classtext = '\t\t'
for c in classLists :
classtext+=c[1:]+"."+c+"\t"
classtext+="-1.添加班级\t-2.删除班级\t0.退出系统\n\n\t\t请输入指令:"
classoption = input(classtext)
if classoption == '0' :
return '0'
flag = False
for c in classLists :
if c[1:] == classoption :
flag = True
if flag :
return classoption
else :
print("\n\t\t你输入的班级不存在,请查证后重试\n")
return '00'
# 添加学生信息
def addUser(cloption):
# 输入的姓名
name = input('''
请输入学生姓名:''')
# 获取当前系统时间的毫秒数 并转换为str类型
notime = str(int(round(time.time() * 1000)))
# 得到毫秒数最后一位 并转换为int类型 然后去余2 判断是否为男/女
sex = ''
if int(notime[len(notime)-1:]) % 2 == 0 :
sex = '男'
else :
sex = '女'
# 添加学生
flag = False
# 判断班级是否存在
for key in classUserMaps.keys() :
if key == "T"+cloption :
flag = True
break;
if flag :
classUserMaps['T'+cloption]['XH'+notime]={'no':'XH'+notime,'name':name,'sex':sex,'age':'18','address':'湖南省长沙市'}
else :
classUserMaps['T'+cloption]={'XH'+notime:{'no':'XH'+notime,'name':name,'sex':sex,'age':'18','address':'湖南省长沙市'}}
userInfo = classUserMaps['T'+cloption]['XH'+notime]
print('\n\t\t--------------------------------------------------------------------------------------------------------------------------')
print('\t\t-\tAdd-Yes -> 学生信息为 -> ','班级:','T'+cloption,' 学号:',userInfo['no'],' 姓名:',userInfo['name'],' 性别:',userInfo['sex'],' 年龄:',userInfo['age'],' 地址:',userInfo['address'],end="\t-\n")
print('\t\t--------------------------------------------------------------------------------------------------------------------------')
# 修改学生信息
def editUser(cloption):
# 输入的学号
no = ''
noflag = False
while True :
no = input('''
请输入学生学号:''')
if no == '0' :
break;
if no == "" :
print('\n\t\t你还未输入学生学号,请输入后重试')
continue
for ckey,cval in classUserMaps.items() :
if ckey == 'T'+cloption :
for ukey,uval in cval.items() :
if ukey == no :
noflag = True
break;
break;
if noflag :
break;
print('\n\t\t在'+'T'+cloption+'未找到该与之学号匹配的学生')
while True :
clno = input('''
请输入班级号:''')
if clno == '0' :
break;
if clno != "" :
if clno[0:1] != "T" :
clno = "T"+clno
# 统计,判断该班级是否存在
if classLists.count(clno) != 0 :
userInfo = classUserMaps['T'+cloption].pop(no)
flag = False
# 判断班级是否存在
for key in classUserMaps.keys() :
if key == clno :
flag = True
break;
if flag :
classUserMaps[clno][userInfo['no']]=userInfo
else :
classUserMaps[clno]={userInfo['no']:userInfo}
print('\n\t\t--------------------------------------------------------------------------------------------------------------------------')
print('\t\t-\tEdit-Yes -> 学生信息为 -> ','班级:',clno,' 学号:',userInfo['no'],' 姓名:',userInfo['name'],' 性别:',userInfo['sex'],' 年龄:',userInfo['age'],' 地址:',userInfo['address'],end="\t-\n")
print('\t\t--------------------------------------------------------------------------------------------------------------------------')
break;
print("\t\t你输入的班级号有误\n")
# 删除学生信息
def delUser(cloption) :
# 输入的学号
no = ''
noflag = False
while True :
no = input('''
请输入学生学号:''')
if no == '0' :
break;
if no == "" :
print('\n\t\t你还未输入学生学号,请输入后重试')
continue
for ckey,cval in classUserMaps.items() :
if ckey == 'T'+cloption :
for ukey,uval in cval.items() :
if ukey == no :
noflag = True
break;
break;
if noflag :
break;
print('\n\t\t在'+'T'+cloption+'未找到该与之学号匹配的学生')
while True :
isdel = input('''
1.确认 2.取消
是否确认删除:''')
if isdel == '1' :
classUserMaps['T'+cloption].pop(no);
break;
elif isdel == '2' :
break;
else :
print('\n\t\t你输入的指令有误')
# 查询学生信息
def selUser():
print("\n\t\t->Xlm<-")
for cl in classLists :
for ckey,cval in classUserMaps.items() :
if cl == ckey :
print('\n\t\t班级:'+cl)
for ukey,userInfo in cval.items() :
print('\n\t\t学号:',userInfo['no'],' 姓名:',userInfo['name'],' 性别:',userInfo['sex'],' 年龄:',userInfo['age'],' 地址:',userInfo['address'])
print("\n\t\t->Xlm<-")
# 获得当前日期毫秒数
noTime = int(round(time.time() * 1000))
title = '''
* Xlm 学生信息管理系统 *
'''
print(title)
optionTitle = '''
1.增加学生信息 2.修改学生信息 3.删除学生信息 4.查询学生信息 0.返回到班级选项
请输入指令:'''
classLists = ['T201','T202','T203','T204','T205']
#学生信息数据 {字典:{字典:{字典}}}
classUserMaps = {'T202':{'XH'+str(noTime):{'no':'XH'+str(noTime),'name':'柠萌','sex':'女','age':'18','address':'湖南省长沙市'}}}
while True :
# 判断班级是否存在
cloption = isClass();
# 退出
if cloption == '0' :
break
# 输入的班级有误
elif cloption == '00' :
continue
else :
while True :
option = input(optionTitle)
if option == '1':
# 添加学生信息
addUser(cloption);
elif option == '2':
# 修改学生信息
editUser(cloption);
elif option == '3':
# 删除学生信息
delUser(cloption)
elif option == '4':
# 查询学生信息
selUser();
elif option == '0':
print()
break;
因为有中文注释
注:默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。
解决方法如下
我们为源码文件指定编码即可。
# -*- coding: gbk -*-