第九章 内置模块

news2025/1/23 6:14:20

目录

第九章 内置模块

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.查看:

import math
​
print(dir(math))
​
结果:
['__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.查看:

import random
​
print(dir(random))
​
结果:
['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( )方法 --- 改变随机数的生成器种子,可以调用时使用

import random
​
random.seed()
print('默认:', random.random())
print('默认:', random.random())
​
random.seed(10)
print('使用10作为种子数:', random.random())
print('使用10作为种子数:', random.random())
​
random.seed('hello', 2)
print('字符串:', random.random())
​
​
结果:
默认: 0.8228169155922092
默认: 0.36032589277619675
使用10作为种子数: 0.5714025946899135
使用10作为种子数: 0.4288890546751146
字符串: 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模块与操作系统的关系

        返回操作系统不同

import os
​
print(os.name)
​
结果:
nt
#nt为windows系统,Linux与MAC os为posix

4.路径

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

        分类

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

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

例 显示相对及绝对路径

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

5.判断目录是否存在

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

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

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

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

6.创建目录

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

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

例 创建一个demo目录

import os
​
os.mkdir('d:\\demo')

注意:

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

import os
​
path = 'd:\\demo'
if not os.path.exists(path):
 os.mkdir(path)
else:
 print('目录已存在')
 
结果:
目录已存在

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

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

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

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

7.删除目录

        格式 --- os.rmdir(path)

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

例:

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

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

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

8.文件或目录的重命名

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

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

dst --- 指的是新名称

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

注意 :

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

9.获取文件信息

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

        格式 --- os.stat(path)

import os
​
print(os.stat('e:\\pythontext\\exercise.py'))
​
结果:
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.例:

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

5.UUID模块

1.定义

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

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

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

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

6.时间日期模块

1.time模块:

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

时间戳:

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

import time
​
t = time.time()
print('当前时间戳为:', t)
​
ltime = time.localtime()
print("本地时间:", ltime)  # 元组格式显示
​
# 格式化时间
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
print(time.strftime('%a %b %d %H:%M:%S %Y'))
​
结果:
当前时间戳为: 1667990814.050799
本地时间: 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)
2022-11-09 18:46:54
Wed Nov 09 18:46:54 2022
​

2.datetime模块

        用于处理时间

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

3.calendar模块 --- 日历

        常用方法:

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

7.加密模块hashlib

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/5095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自我实现tcmalloc的项目简化版本

项目介绍 该项目是基于现代多核多线程的开发环境和谷歌项目原型tcmalloc的自我实现的简化版本,相比于本身就比较优秀的malloc来说,能够略胜一筹,因为其考虑了 性能,多线程环境,锁竞争和内存碎片的问题,主要利用了池化思想来管理内存分配,对于每个线程&#xff0c;都有自己的私…

鸿蒙开发套件全面升级,助力鸿蒙生态蓬勃发展

目录 1. 全场景分布式系统 2. HarmonyOS的超能力&#xff1a;ArkTS API万箭齐发 3.解锁“鸿蒙开发套件”的新技能 &#xff08;1&#xff09; 智能代码编辑器 &#xff08;2&#xff09;Hvigor编译构建 &#xff08;3&#xff09;热重载&#xff1a;向看直播一样查看运行…

MySQL : 彻底搞懂一条SQL的执行过程

整体流程 组件介绍 连接器 处理客户端的连接&#xff0c;一般处理我们这个命令&#xff0c;判断是否满足接入server的条件 mysql ‐h host[数据库地址] ‐u root[用户] ‐p root[密码] ‐P root查询缓存 在8.0之前&#xff0c;如果用户开启了查询缓存的开关&#xff0c;那么…

vue2.6 + ts 使用vuex

目录vue2.6 ts 使用vuex安装01&#xff1a;直接使用 store / index.ts的数据store / index.tsmain.ts001&#xff1a;同步mutation操作vuex数据与获取getters001&#xff1a;效果002&#xff1a;异步action、mutation操作vuex数据002&#xff1a;效果02&#xff1a;引入其他模…

CANoe 简介

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…

Go 语言项目源码解析:定时任务库 cron

环境准备 首先我们将源码克隆&#xff08;Fork&#xff09;为自己的个人仓库&#xff0c;只需要在 GitHub 项目主页点击 Fork 按钮&#xff0c;然后输入项目名称点击确认即可。克隆完毕后&#xff0c;可以下载到本地&#xff0c;或者直接在科隆后的 GitHub 仓库主页上点击 Cre…

RabbitMQ

RabbitMQ 1.MQ引言 MessageQueue: 消息队列 模块之间的耦合度多高&#xff0c;导致一个模块宕机后&#xff0c;全部功能都不能用了&#xff0c;并且同步通讯的成本过高&#xff0c;用户体验差。 1.1什么是MQ MQ&#xff08;Message Queue&#xff09;消息队列&#xff0c;是基…

Android Studio App开发实战项目之广告轮播(附源码 可用于大作业)

需要图片集和源码请点赞关注收藏后评论区留言即可~~~ 电商App的首页上方&#xff0c;都在明显位置放了一栏广告条&#xff0c;并且广告条会轮播&#xff0c;非常吸引眼球&#xff0c;这种广告轮播的功能&#xff0c;为推广热门事物出力甚大。 轮播视频已上传至我的主页&#x…

【云原生】docker 搭建ElasticSearch7

前言 本篇演示如何基于docker环境快速搭建起es7的环境 安装es7.6 1、拉取镜像 docker pull elasticsearch:7.6.2 2、执行下面的命令进行安装 docker run -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e ES_JAVA_OPTS"-Xms512m -Xmx512m"…

Android Studio App开发实战项目之计时器(附源码 简单易懂,适合新手学习)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、Handler的延迟机制 活动页面的Java代码通常是串行工作的&#xff0c;而且App界面很快就加载完成容不得半点延迟&#xff0c;不过偶尔也需要某些控件时不时的动一下&#xff0c;好让界面呈现动画效果更加活泼&#xff0…

shiro框架04会话管理+缓存管理+Ehcache使用

目录 一、会话管理 1.基础组件 1.1 SessionManager 1.2 SessionListener 1.3 SessionDao 1.4 会话验证 1.5 案例 二、缓存管理 1、为什么要使用缓存 2、什么是ehcache 3、ehcache特点 4、ehcache入门 5、shiro与ehcache整合 1&#xff09;导入相关依赖&#xff0…

2019银川F,ccpc威海D - Sternhalma 2022

1401D - Maximum Distributed Tree 求每个边经过的次数&#xff0c;假设求u,v这条边的次数&#xff0c;边的左端是u这个集合一共有n-siz[v]个点&#xff0c;右端是v这个集合有siz[v]个端点&#xff0c;经过这条边的次数就是siz[v]*(n-siz[v]),然后再按照次数多的乘以大的质因数…

【附源码】Python计算机毕业设计汽车租赁管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Go 语言中的 Moduels 管理(Let‘s Go 三十四)

在 Go 1.11以前使用包管理一直被开发者所诟病。既然GOPATH这种包管理引起了一线开发者的一片骂声&#xff0c;所以&#xff0c;Go官方体恤一线开发者对GOPATH这种包管理的情绪&#xff0c;一直致力努力提供对一线开发者友好的包管理解决方法而奋斗。从最初的GOPATH到GO VENDOR&…

基于遗传算法、元胞自动机邻域和随机重启爬山混合优化算法(GA-RRHC)的柔性车间调度研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

LeetCode50天刷题计划第二季(Day 27 — 寻找旋转排序数组中的最小值(9.50- 11.20)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、题目寻找旋转排序数组中的最小值示例提示&#xff1a;二、思路三、代码前言 芜湖 一、题目 寻找旋转排序数组中的最小值 已知一个长度为 n 的数组&#…

web前端期末大作业——基于HTML+CSS+JavaScript实现中国茶文化(30页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

大数据开发是做什么的?怎样入门?

其实现在有很多小伙伴看中了大数据的发展前景&#xff0c;但是其实不知道大数据开发具体是做什么的&#xff0c;又该怎么学习&#xff1f;学习了之后又该做什么&#xff1f; 下面具体给你分析下大数据开发是做什么的&#xff0c;又需要学习和掌握哪些技能~ 大数据开发做什么&a…

致远OA ajax.do 任意文件上传 (CNVD-2021-01627) 漏洞复现

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓01 漏洞描述02 影响范围03 验证方式04 利用方式05 修复方案01 漏洞描述 致远OA是一套办公协同管理软件。由于致远OA旧版本某些接口存在未授权访问&#xff0c;以及部分函数存在过滤不足&#xff0c;攻…

大数据实战之前戏

开发背景 因为要开发一套通话详单系统。该系统上每天产生1亿条通话话单&#xff0c;要保存一个月的通话话单。也就是保存30亿条通话&#xff0c;能够做到准实时的通话详单查询。于是采用大数据架构进行话单的保存和查询。 服务器规划 为了验证系统的可用性&#xff0c;我先搭…