一、完成手机号码的初始化操作
1、s='hello'
print(s.find("h")) # 返回的结果为0
find 字符串里面的方法 寻找字符串里面的子字符 子字符串
找到的话 返回的是索引
找不到的话 返回的是-1
if后面非零 非空 成立表达式 都为True 只要是True if下面的子代码都会执行
二、学习loggin
1、logging是什么?作用是什么?
logging--是Python自带的一个日志模块
它的作用主要是有两个:
1) 代替print,可以把大部分你想要进行调试的信息打印出来或者输出到指定文件。
2)可以对一些输出的调试信息分类做输出,比如说:DEBUG、INFO、WARNING、ERROR、CRITICAL
import logging #python字典
# logger 收集日志 debug info error
# handdler 输出日志的渠道 指定的文件 还是控制台
# logging默认输出到控制台的只是warning及比warning级别更多的
logging.debug("111")
logging.info("222")
logging.warning("333")
logging.error("444")
logging.critical("555")
运行结果:
WARNING:root:333
ERROR:root:444
CRITICAL:root:555
2、自定义logger
import logging #python字典
# logger 收集日志 debug info error
# handdler 输出日志的渠道 指定的文件 还是控制台
# 定义一个日志收集器 my_logger
my_logger=logging.getLogger("python11")
# 设定级别
my_logger.setLevel("DEBUG")
#格式
formatter=logging.Formatter('%(asctime)s---%(levelname)s---%(filename)s---%(name)s---日志信息:%(message)s')
# 创建一个我们自己的输出渠道
ch=logging.StreamHandler()
# 设置级别
ch.setLevel("DEBUG")
ch.setFormatter(formatter)
fh=logging.FileHandler("py11.txt",encoding='utf-8')
fh.setLevel("DEBUG")
fh.setFormatter(formatter)
# 两者对接
my_logger.addHandler(ch)
my_logger.addHandler(fh)
# 收集日志
my_logger.debug("python11期logging已经懵逼")
my_logger.error("python11期最棒 坚强点")
运行结果:
2024-06-18 22:41:48,269---DEBUG---py.py---python11---日志信息:python11期logging已经懵逼
2024-06-18 22:41:48,274---ERROR---py.py---python11---日志信息:python11期最棒 坚强点
3、自定义logging封装类
import logging #python字典
class My_Logger:
def my_log(self,msg,level):
# 定义一个日志收集器 my_logger
my_logger=logging.getLogger("python11")
# 设定级别
my_logger.setLevel("DEBUG")
formatter=logging.Formatter('%(asctime)s---%(levelname)s---%(filename)s---%(name)s---日志信息:%(message)s')
# 创建一个我们自己的输出渠道
ch=logging.StreamHandler()
# 设置级别
ch.setLevel("DEBUG")
ch.setFormatter(formatter)
fh=logging.FileHandler("py11.txt",encoding='utf-8')
fh.setLevel("DEBUG")
fh.setFormatter(formatter)
# 两者对接
my_logger.addHandler(ch)
my_logger.addHandler(fh)
# 收集日志
if level=="DEBUG":
my_logger.debug(msg)
elif level=="INFO":
my_logger.info(msg)
elif level=="WARNING":
my_logger.warning(msg)
elif level=="ERROR":
my_logger.error(msg)
elif level=="CRITICAL":
my_logger.critical(msg)
# logging注意事项(小心重复记录相同的日志).<----removeHandler
my_logger.removeHandler(ch)
my_logger.removeFilter(fh)
def debug(self,msg):
self.my_log(msg,"DEBUG")
def info(self,msg):
self.my_log(msg, "INFO")
def warning(self,msg):
self.my_log(msg,"WARNING")
def error(self,msg):
self.my_log(msg,"ERROR")
def critical(self,msg):
self.my_log(msg,"CRITICAL")
if __name__ == '__main__':
My_Logger().my_log("今天天气好好","DEBUG")
My_Logger().my_log("今天天气好好2", "ERROR")
My_Logger().debug("今天天气好好")
My_Logger().error("今天天气好好2")
运行结果:
2024-06-18 22:46:17,774---DEBUG---my_log.py---python11---日志信息:今天天气好好
2024-06-18 22:46:17,774---ERROR---my_log.py---python11---日志信息:今天天气好好2
2024-06-18 22:46:17,774---DEBUG---my_log.py---python11---日志信息:今天天气好好
2024-06-18 22:46:17,775---ERROR---my_log.py---python11---日志信息:今天天气好好2
4、format的设置
如:
formatter=logging.Formatter('%(asctime)s---%(levelname)s---%(filename)s---%(name)s---日志信息:%(message)s')
输出的结果为:
2024-06-18 22:46:17,774---DEBUG---my_log.py---python11---日志信息:今天天气好好