Python--学习记录

1.函数传递 

准备看看别的老师怎么写项目的,好家伙上来就是一堆的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]()

效果图:

Python--学习记录_第1张图片

2.logging模块

日志分为5个等级,调试,消息,警告,错误和严重错误5个等级,日志的输出等级是可以配置的,在调试的时候可以将日志等级设置为debug,将日志等级设置为info级别之后,info级别之下的日志就都不会输出,默认输出warning级别及以上的日志

logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
logging.critical("critical")

结果图:

(日志的级别:日志的名字:日志的详细信息)

 

2.1日志基本配置

1)日志基本配置内容

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")

日志输出格式: 

2)日志基本配置存在的问题

基本配置只能配置日志一些基本的东西,在这里不能设置日志的编码方式。没有指定编码方式的话,windows系统默认使用gbk编码方式,而pycharm默认是使用utf-8来打开的,所以会产生乱码。此问题只会在windows电脑上面出现,linux和mac默认的编码方式都是utf-8。

基本配置也无法实现将日志往终端显示的同时,还往文件中间写入。

2.2日志配置字典

可以将日志所有的配置内容都写在这个配置字典里面,通过加载这个字典,让logging模块来使用这里面的配置项。要将这个配置字典往项目里面放的话,就需要放置到settings.py里面

你可能感兴趣的:(python,学习,开发语言)