完成手机号码的初始化操作、学习logging、发送邮件

一、完成手机号码的初始化操作

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---日志信息:今天天气好好

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值