• 第九章 内置模块


    目录

    第九章 内置模块

    1.math模块

    1.查看:

    2.常用方法:

    2.random模块

    1.查看:

    ​2.例:

    3.random(a,b)

    4.random.sample(range(0,20),10)

    3.os模块与os.path模块

    1.作用

    2.目录

    3.os模块与操作系统的关系

    4.路径

    5.判断目录是否存在

    6.创建目录

    7.删除目录

    8.文件或目录的重命名

    9.获取文件信息

    10.常见的方法汇总​编辑

     11.os.path模块的常用方法​编辑

    4.sys模块

    1.作用

    2.常见方法​编辑

    3.例:

    5.UUID模块

    1.定义

    2. Python提供UUID1、3、4、5个版本的UUID

    6.时间日期模块

    1.time模块:

    2.datetime模块

    3.calendar模块 --- 日历

    7.加密模块hashlib


    第九章 内置模块

    1.math模块

    1.查看:

    1. import math
    2. print(dir(math))
    3. 结果:
    4. ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp']

    2.常用方法:

    函数描述
    math.e发布会欧拉数
    math.inf返回正无穷大的浮点数
    math.nan返回浮点数
    math.pi返回圆周率
    math.tau返回数学常数

     

     

     

    2.random模块

    1.查看:

    1. import random
    2. print(dir(random))
    3. 结果:
    4. ['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_floor', '_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']

    ​2.例:

            seed( )方法 --- 改变随机数的生成器种子,可以调用时使用

    1. import random
    2. random.seed()
    3. print('默认:', random.random())
    4. print('默认:', random.random())
    5. random.seed(10)
    6. print('使用10作为种子数:', random.random())
    7. print('使用10作为种子数:', random.random())
    8. random.seed('hello', 2)
    9. print('字符串:', random.random())
    10. 结果:
    11. 默认: 0.8228169155922092
    12. 默认: 0.36032589277619675
    13. 使用10作为种子数: 0.5714025946899135
    14. 使用10作为种子数: 0.4288890546751146
    15. 字符串: 0.3537754404730722

    3.random(a,b)

            返回随机一个整数N,满足a<=N<=b

    4.random.sample(range(0,20),10)

            返回范围内的指定个数的随机列表

    3.os模块与os.path模块

    1.作用

            用于Python整理文集一起目录,os.path是其子模块

    2.目录

            也称为文件夹,用于分层保存管理文件

    3.os模块与操作系统的关系

            返回操作系统不同

    1. import os
    2. print(os.name)
    3. 结果:
    4. nt
    5. #nt为windows系统,Linux与MAC os为posix

    4.路径

            定义 --- 定位一个文件或目录的字符串称为路径

            分类

                    相对路径 --- 当目录开始时访问

                    绝对路径 --- 文件的实际路径,一般从盘符号或根目录(\)开始访问

    例 显示相对及绝对路径

    1. import os
    2. print(os.getcwd())  # 获取当前工作目录
    3. print(os.path.abspath('data.py'))  # 获取某个文件的绝对路径
    4. 结果:
    5. E:\pythontext
    6. E:\pythontext\第一天.txt

    5.判断目录是否存在

            格式 --- os.path.exsts(path)

    path --- 要判断文件的路径,推荐绝对路径

            文件存在返回Ture,不存在返回False

    1. import os
    2. print(os.path.exists('c:\demo')) # 判断目录
    3. print(os.path.exists('e:\\pythontext\\exercise.py')) # 判断文件
    4. 结果:
    5. False
    6. True

    6.创建目录

            创建一级目录 --- os.mkdir(path)

            一般用于创建指定路径中的最后一级目录,若上级目录不存在会抛出异常,被创建的目录若已存在也会抛出异常

    例 创建一个demo目录

    1. import os
    2. os.mkdir('d:\\demo')

    注意:

    上例再次执行会报错,由于目录已存在会抛出异常,所以一般会和判断目录是否存在的函数一同使用,应该为:

    1. import os
    2. path = 'd:\\demo'
    3. if not os.path.exists(path):
    4. os.mkdir(path)
    5. else:
    6. print('目录已存在')
    7. 结果:
    8. 目录已存在

            创建多级目录(递归目录) --- os.makedirs(path)

    1. import os
    2. os.makedirs('d:\\t1\\t2\\t3\\t4')

    例 在一个目录中批量创建多个目录

    1. import os
    2. os.mkdir('d:\\python授课')
    3. for i in range(1,25):
    4.    if not os.path.exists('d:\\python授课\\第{}次课'.format(i)):
    5.        os.mkdir('d:\\python授课\\第{}次课'.format(i))
    6.    else:
    7.        print("目录已存在")

    7.删除目录

            格式 --- os.rmdir(path)

            注意 --- 只有被删除的目录中为空时才可以删除

    例:

    1. import os
    2. os.rmdir('d:\\python授课')
    3. for i in range(1, 25):
    4.    os.rmdir('d:\\python授课\\第{}次课'.format(i))

            可以使用shutil.rmtree()函数 --- 删除不为空的目录

            删除文件 --- os.remove(path)

    8.文件或目录的重命名

            格式 --- os.rename('src','dst')

    src --- 指定需要重命名的文件或目录

    dst --- 指的是新名称

    1. import os
    2. os.mkdir('d:\\python授课')
    3. os.rename('d:\\python授课','d:Python上课')

    注意 :

            重命名的目录或者文件不存在则会抛出异常,一般需要和判断目录是否存在一同使用

    9.获取文件信息

            获取文件访问时间、修改时间、大小等信息

            格式 --- os.stat(path)

    1. import os
    2. print(os.stat('e:\\pythontext\\exercise.py'))
    3. 结果:
    4. os.stat_result(st_mode=33206, st_ino=22517998136852553, st_dev=3323684860, st_nlink=1, st_uid=0, st_gid=0, st_size=77358, st_atime=1667912103, st_mtime=1667912103, st_ctime=1664359385)

    10.常见的方法汇总

     11.os.path模块的常用方法

    4.sys模块

    1.作用

            用于和Python运行时设置资源配置,与当前程序交互使用

    2.常见方法

    3.例:

    1. import sys
    2. a = 2
    3. if a <= 2:
    4.    sys.exit(8)  # 退出Python程序执行,下面的代码不会执行
    5. print(a)
    6. import sys
    7. print(sys.version)
    8. 结果:
    9. 3.9.12 (tags/v3.9.12:b28265d, Mar 23 2022, 23:52:46) [MSC v.1929 64 bit (AMD64)]
    10. import sys
    11. # 从键盘的缓冲区域输入字符串
    12. aa = sys.stdin.readline()
    13. bb = input('请输入:')
    14. print(len(aa))  # 比input多收一个 /n
    15. print(len(bb))
    16. 结果:
    17. china
    18. 请输入chian

    5.UUID模块

    1.定义

            通用唯一标识符,对于硬件保证其在空间和时间上唯一,一般为32B

    2. Python提供UUID1、3、4、5个版本的UUID

    1. import uuid
    2. name = 'test_name'
    3. namepace = uuid.NAMESPACE_DNS
    4. a = uuid.uuid1()  # 基于时间戳
    5. print(a, type(a))
    6. b = uuid.uuid3(namepace, name)  # 基于MD5的散列值
    7. print(b, type(b))
    8. c = uuid.uuid1()  # 基于随机数
    9. print(c, type(c))
    10. d = uuid.uuid5(namepace, name)
    11. print(d, type(d))  # 基于名称的SHA-1散列值
    12. 结果:
    13. 84d12f3f-601a-11ed-be1b-fc3497df1d69 <class 'uuid.UUID'>
    14. 7e9fc176-3b19-394a-9530-83391161f8e9 <class 'uuid.UUID'>
    15. 84d15656-601a-11ed-98c0-fc3497df1d69 <class 'uuid.UUID'>
    16. ad85ae8c-f638-56e0-b9fc-5d7a58009f62 <class 'uuid.UUID'>

    通常用于查找标识符并加密

    6.时间日期模块

    1.time模块:

            提供格式化时间,一般用于爬虫

    时间戳:

            时间戳是使用数字签名技术产生的数据,签名的对象包括了原始文件信息、签名参数、签名时间等信息。时间戳系统用来产生和管理时间戳,对签名对象进行数字签名产生时间戳,以证明原始文件在签名时间之前已经存在。

    1. import time
    2. t = time.time()
    3. print('当前时间戳为:', t)
    4. ltime = time.localtime()
    5. print("本地时间:", ltime)  # 元组格式显示
    6. # 格式化时间
    7. print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
    8. print(time.strftime('%a %b %d %H:%M:%S %Y'))
    9. 结果:
    10. 当前时间戳为: 1667990814.050799
    11. 本地时间: time.struct_time(tm_year=2022, tm_mon=11, tm_mday=9, tm_hour=18, tm_min=46, tm_sec=54, tm_wday=2, tm_yday=313, tm_isdst=0)
    12. 2022-11-09 18:46:54
    13. Wed Nov 09 18:46:54 2022

    2.datetime模块

            用于处理时间

    1. import datetime as dt
    2. x = dt.date(2022, 11, 9)
    3. y = dt.time(6, 49, 55, 10)
    4. z = dt.datetime(2022, 11, 9, 6, 50, 20, 10)
    5. d = dt.timedelta(3, 2, 1, 6)
    6. print(x, y, z, d, sep='\n')
    7. 结果:
    8. 2022-11-09
    9. 06:49:55.000010
    10. 2022-11-09 06:50:20.000010
    11. 3 days, 0:00:02.006001

    3.calendar模块 --- 日历

            常用方法:

    1. import calendar as cd
    2. print(cd.calendar(2022))  # 全年的日历
    3. print(cd.month(2022, 12))  # 指定某年某月的日历
    4. print(cd.isleap(2022))  # 返回某年是否为闰年
    5. print(cd.weekday(2022, 11, 9))  # 返回末年末月某日是星期几

    7.加密模块hashlib

            接收传入内容,计算后得到hash值

    1. import hashlib
    2. obj = hashlib.md5()  # 创建一个hash对象
    3. obj.update('HELLO WORLD'.encode('UTF-8'))  # 返回hash值
    4. t = obj.hexdigest()  # 返回加密串
    5. print(t)
    6. 结果:
    7. 361fadf1c712e812d198c4cab5712a79

  • 相关阅读:
    毕业设计-基于SpringBoot校园论坛管理系统
    工业自动化控制通信协议Profinet系列-1、了解Profinet协议及收集资料
    springboot+vue.js大学生竞赛报名作品评分管理系统
    【云原生】Helm 常用命令(chart 安装、升级、回滚、卸载等操作)
    Vue3+Ts,利用vee-validate封装一个验证表单类似于Elementui el-form
    react的table合并行时,出现border-bottom重复问题
    Docker Register 搭建私有镜像仓库
    RestCloud ETL抽取动态库表数据实践
    小波去噪算法的简易实现及其扩展(小波锐化、高斯拉普拉斯金字塔去噪及锐化)之二。
    【linux网络编程】Unix/Linux上的五种IO模型
  • 原文地址:https://blog.csdn.net/qq_57289939/article/details/127811800