python基础语法 - 常用模块

  • python中日常开发常用的模块,其他不常用可以查询python官方API文档。

math模块

  • 用以常用数学运算,操作数只有整数和浮点数,不包括复数,复数计算需使用cmath模块。

舍入函数

  • math.ceil(a):返回大于或等于a的最小整数。
  • math.floor(a):返回小于或等于a的最大整数。
  • round(a):对a进行四舍五入运算
    在这里插入图片描述

幂和对数函数

  • math.log(a, [base]):返回以base为底的a的对数,没有base,则默认a的自然对数 。
  • math.sqrt(a):返回a的平方根。
  • math.pow(a, b):返回a的b次幂的值。
    在这里插入图片描述

三角函数

  • math.sin(a):弧度a的三角正弦。
  • math.cos(a):弧度a的三角余弦。
  • math.tan(a):弧度a的三角正切。
  • math.asin(a):弧度a的三角反正弦。
  • math.acos(a):弧度a的三角反余弦。
  • math.atan(a):弧度a的三角反正切。
  • 弧度与角度怎么转化呢?math.degrees(a):将弧度a转为角度;math.radians(a):将角度a转为弧度。
    在这里插入图片描述

random模块

  • 生成随机数(伪随机数)。
  • random.random():返回在范围大于或等于0.0,小于1.0内的随机浮点数。
  • random.randrange(endnum):返回在范围大于或等于0.0,小于endnum,步长为1的随机整数。
  • random.randrange(startnum, endnum [, step]):返回在范围大于或等于startnum,小于endnum,步长为step的随机整数。
  • random.randint(a,b):返回在范围大于或等于a,小于或等于b,之间的随机整数。
    import random
    
    for i in range(0,3):
        x = random.random()
        print(x)
    
    for i in range(0,5):
        a = random.randrange(5, 30, 2)
        print(a)
    
    for i in range(0,3):
        b = random.randint(3, 9)
        print(b)
    
  • 运行结果
    在这里插入图片描述

datetime模块

  • 官方提供的日期和时间模块,其实还有time,不过datetime模块是对time模块的封装,提供更高级API。
  • datetime模块提供以下几个类(前三个是核心):
    • datetime:包含时间和日期
    • date:只包含日期
    • time:只包含时间
    • timedelta:计算时间跨度
    • tzinfo:时区信息

datetime类(日期和时间)

  • 一个datetime对象可以表示日期和时间等信息。
  • 创建datetime对象的构造方法为:datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)
  • year,month,day不可省略;tzinfo默认为None,表示不指定时区;其他参数全部为合理范围内的整数。
  • 参数取值范围如下表:
    在这里插入图片描述
  • 示例,超出合理范围时会报错。
    在这里插入图片描述
  • 常用类方法
    • datetime.today():返回当前本地日期和时间。
    • datetime.now(tz=None):返回本地当前的日期和时间,如果tz=None,同today()。
    • datetime.utcnow():返回当前UTC日期和时间。
    • datetime.fromtimestamp(timestamp, tz=None):返回与UNIX时间戳对应的本地日期和时间。
    • datetime.utcfromtimestamp(timestamp):返回与UNIX时间戳对应的UTC日期和时间。
  • 示例
    在这里插入图片描述

date类(日期)

  • 一个date对象可以表示日期等信息。
  • 创建date对象的构造方法:datetime.date(year, month, day)
  • 三个参数不可省略,且在参数合理范围内取值。
    在这里插入图片描述
  • 常用类方法:
    • date.today():返回当前本地日期。
    • date.fromtimestamp(timestamp): 返回与UNIX时间戳对应的本地日期。
  • 示例
    在这里插入图片描述

time类(时间)

  • 一个time对象可以表示一天中时间的信息。
  • 创建time对象的构造方法:datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None)
  • 所有参数都是可选的,除tzinfo外,其他参数都应该在合理范围内,参考datetime类的表格。
    在这里插入图片描述

timedelta类(日期时间计算)

  • timedelta对象用于计算datetime、date和time对象时间间隔。
  • 其构造方法:datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
  • 所有参数都是可选的,参数可以为整数或浮点数,可以为正数或负数。
    在这里插入图片描述

格式化与解析

  • 格式化:将日期和时间,通过某种格式显示,满足当地人查看日期和时间的习惯。

  • 解析:与格式化操作相反,将用户输入的日期和时间字符串,解析为对象。

  • strftime(format):格式化

  • strptime(date_string, format):解析

  • 关于format,常见的日期和时间控制符

    指令含义示例
    %m两位月份表示01、02、12
    %y两位年份表示08、18、20
    %Y四位年份表示2008、2018、2020
    %d月内中的一天1、2、3
    %H两位小时表示(24小时制)00、01、23
    %I两位小时表示(12小时制)01、03、12
    %pAM或PM区域性设置AM和PM
    %M两位分钟表示00、01、58
    %S两位秒表示00、01、45
    %f用6位数表示微秒000000、000001、999999
    %z+HHMM或-HHMM形式的UTC偏移+0000、-0400,如果没有设置时区为空
    %Z时区名称UTC、EST、CST,没有设置时区为空
  • 示例
    在这里插入图片描述

时区

  • datetime和time对象只是单纯地表示本地的日期和时间,没有时区信息。想带有时区信息,可以使用timezone类,它是tzinfo的子类,提供了UTC偏移时区的实现。
  • 构造方法:datetime.timezone(offset, name=None)
  • offset是UTC偏移量,+8是东八区,北京在此时区;-5是西五区,纽约在此时区;0是零时区,伦敦在此时区。
  • name参数是时区名字,如Asia/Beijing,可以省略。

logging日志模块

  • 不能只依靠print()函数做复杂的日志输出,可以使用内置logging模块。

日志级别

  • logging模块提供5种常用级别,如下图,级别从上到下,由低到高。
    在这里插入图片描述
  • 如果设置了DEBUG级别,debug()函数和其他级别的函数的日志信息都会输出;如果设置ERROR级别,error()和critical()函数的日志信息会输出。
    import logging
    
    logging.basicConfig(level=logging.ERROR)
    
    logging.debug('这是DEBUG级别信息')
    logging.info("这是INFO级别信息")
    logging.warning("这是warning级别信息")
    logging.error("这是ERROR级别信息")
    logging.critical("这是CRITICAL级别信息")
    
  • 运行结果
    在这里插入图片描述
  • 改为DEBUG级别
    import logging
    
    logging.basicConfig(level=logging.DEBUG)
    
    logging.debug('这是DEBUG级别信息')
    logging.info("这是INFO级别信息")
    logging.warning("这是warning级别信息")
    logging.error("这是ERROR级别信息")
    logging.critical("这是CRITICAL级别信息")
    
  • 运行结果
    在这里插入图片描述
  • 注意,在输出的日志信息中会有root关键字,说明了进行日志输出的对象是root日志器。可以使用getLogger()函数创建自己的日志器对象,代码:logger = logging.getLogger(__name__)
  • getLogger()函数的参数是一个字符串,__name__是当前模块名。
    import logging
    
    logging.basicConfig(level=logging.DEBUG)
    
    logger = logging.getLogger(__name__)
    
    logger.debug('这是DEBUG级别信息')
    logger.info("这是INFO级别信息")
    logger.warning("这是warning级别信息")
    logger.error("这是ERROR级别信息")
    logger.critical("这是CRITICAL级别信息")
    
  • 输出结果
    在这里插入图片描述

日志信息格式化

  • 可以根据自己的需要设置日志信息的格式化。常用格式化参数如下:

    日志格式参数说明
    %(name)s日志器名
    %(asctime)s输出日志时间
    %(filename)s包括路径的文件名
    %(funcName)s函数名
    %(levelname)s日志等级
    %(processName)s进程名
    %(threadName)s线程名
    %(message)s输出信息
  • 示例

    import logging
    
    logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(threadName)s - %(name)s - %(funcName)s - %(levelname)s - %(message)s')
    
    logger = logging.getLogger(__name__)
    
    logger.debug('这是DEBUG级别信息')
    logger.info("这是INFO级别信息")
    logger.warning("这是warning级别信息")
    logger.error("这是ERROR级别信息")
    logger.critical("这是CRITICAL级别信息")
    
    def funclog():
        logger.info("进入funclog函数")
    
    logger.info('调用funclog函数')
    funclog()
    
  • 输出结果
    在这里插入图片描述

日志重定位

  • 日志信息默认是输出到控制台的,可以将日志信息输出到日志文件中,甚至可以输出到网络中的其他计算机。
  • 示例
    import logging
    
    logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(threadName)s - %(name)s - %(funcName)s - %(levelname)s - %(message)s', filename="test.log")
    
    logger = logging.getLogger(__name__)
    
    logger.debug('这是DEBUG级别信息')
    logger.info("这是INFO级别信息")
    logger.warning("这是warning级别信息")
    logger.error("这是ERROR级别信息")
    logger.critical("这是CRITICAL级别信息")
    
    def funclog():
        logger.info("进入funclog函数")
    
    logger.info('调用funclog函数')
    funclog()
    
  • filename=test.log,设置日志文件名,包括路径,日志信息写进此文件中。
  • 输出结果
    在这里插入图片描述

使用配置文件

  • 之前的例子中,日志配置的文件都是在basicConfig()函数中进行的,很不方便,也不利于维护。
  • 可以使用配置文件,配置信息从配置文件中读取。
  • 配置文件
    在这里插入图片描述
  • 示例
    import logging
    import logging.config
    
    logging.config.fileConfig("logger.conf")
    
    logger = logging.getLogger('logger1')
    
    logger.debug('这是DEBUG级别信息')
    logger.info("这是INFO级别信息")
    logger.warning("这是warning级别信息")
    logger.error("这是ERROR级别信息")
    logger.critical("这是CRITICAL级别信息")
    
    def funclog():
        logger.info("进入funclog函数")
    
    logger.info('调用funclog函数')
    funclog()
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值