准备看看别的老师怎么写项目的,好家伙上来就是一堆的print和一堆的if else......,打开电脑还好这道题我会.将函数名作为参数直接进行遍历调用.
func_dict = {
"0": [exit, "退出系统"],
"1": [insert, "录入学生信息"],
"2": [search, "查找学生信息"],
"3": [delete, "删除学生信息"],
"4": [modify, "修改学生信息"],
"5": [sort, "排序"],
"6": [count, "统计学生总人数"],
"7": [show_all, "显示所有学生信息"]
}
while True:
print("学生信息管理系统".center(100, "="))
print("功能管理".center(100,"-"))
for key in func_dict:
print(key,func_dict[key][1])
print("-"*100)
num = input("请选择输入的功能:")
if not num in func_dict.keys():
print("输入项目不存在")
continue
func_dict[num][0]()
效果图:
日志分为5个等级,调试,消息,警告,错误和严重错误5个等级,日志的输出等级是可以配置的,在调试的时候可以将日志等级设置为debug,将日志等级设置为info级别之后,info级别之下的日志就都不会输出,默认输出warning级别及以上的日志
logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
logging.critical("critical")
结果图:
(日志的级别:日志的名字:日志的详细信息)
1.日志级别,2.日志输出格式,3、asctime的时间格式,4、日志输出位置:终端|文件,不指定此项配置,默认输出到终端
import logging
logging.basicConfig(
# 1.日志级别
# DEBUG:10
# INFO:20
# WARNING:30
# ERROR:40
# CRITICAL:50
level=30,
# 2.日志输出格式
# %(asctime)s -> 获取当前时间
# %(name)s -> 当前日志的名字
# %(pathname)s -> 产生日志文件的名字
# %(lineno)d -> 产生日日志的行
# %(levelname)s -> 产生日志的等级
# %(message)s -> 日志的详细内容
format='%(asctime)s %(name)s [%(pathname)s line:%(lineno)d] %(levelname)s %(message)s',
# 3、asctime的时间格式
datefmt="%Y-%m-%d %H:%M:%S",
# 4、日志输出位置:终端|文件,不指定此项配置,默认输出到终端
filename="user.log"
)
# 日志的输出级别是可以设置的
logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
logging.critical("critical")
基本配置只能配置日志一些基本的东西,在这里不能设置日志的编码方式。没有指定编码方式的话,windows系统默认使用gbk编码方式,而pycharm默认是使用utf-8来打开的,所以会产生乱码。此问题只会在windows电脑上面出现,linux和mac默认的编码方式都是utf-8。
基本配置也无法实现将日志往终端显示的同时,还往文件中间写入。
可以将日志所有的配置内容都写在这个配置字典里面,通过加载这个字典,让logging模块来使用这里面的配置项。要将这个配置字典往项目里面放的话,就需要放置到settings.py里面