Python模块之random、hashlib、json、time等内置模块语法学习

Python内置模块语法学习

random、hashlib、json、time、datetime、os等内置模块语法学习

模块


简单理解为就是一个.py后缀的一个文件
分为三种:

  • 内置模块:python自带,可调用
  • 第三方模块:别人设计的,可调用
  • 自定义模块:自己编写的,可调用

模块之间苦于相互调用,是Python最高级别的组织单元,将程序代码和数据封装起来,可以重用。

导入方式:

  • import 直接将一个模块导入进来
  • from xxx import xxx 从一个模块中,导入具体的工具

理论上,python模块中,任意一个地方都可以进行导入,但是规范上,我们开发潜规则上,将导入的部分放在python模块文件最开始的位置编写

代码展示:

import random
from datetime import datetime

random模块


  • random.randint() 随机生成一个范围内的整数
    (a,b),a到b的范围内整数
  • random.uniform() 随机生成一个范围内的小数
    (a,b),a到b的范围内整数
  • random.choice() 随机抽取列表中的一个元素
  • random.sample() 随机抽取列表中若干个元素
    (list1,a) list1中抽a个
  • random.shuffle() 随机打乱列表中的元素

代码展示:

import random
for i in range(2,5):s1 = random.randint(2,5)print(s1)
print('_'*50)
for i in range(2, 5):s2 = random.uniform(2,5)print(s2)
print('_'*50)
for i in range(2, 5):list1 = [2,3,4,5]s3 = random.choice(list1)print(s3)
print('_'*50)
for i in range(2, 5):list1 = [2,3,4,5]s4 = random.sample(list1,2)print(s4)
print('_'*50)
list1 = [2,3,4,5]
random.shuffle(list1)
print(list1)

运行结果:

在这里插入图片描述

hashlib模块


该模块主要是进行数据加密的作用。
常见的加密方式:

  • sha256()【可逆】
  • md5()【不可逆】

若想要对一个明文进行MD5加密的话,一般都不是直接进行加密,而是先进行加盐操作,之后才会进行md5加密。

代码展示:

import hashlib
info = '这里是要加密的:12345678'
# 创建hashlib中的加密对象,md5()加密方法
md5_obj = hashlib.md5()
# 设置确定要编码的明文和加密使用的编码
md5_obj.update(info.encode('UTF-8'))
# 调用函数,开始加密
mi_wen = md5_obj.hexdigest()
print(f"明文:{info},通过md5加密后得到密文:{mi_wen}")
info = '这里是要加密的:12345678'
# 创建hashlib中的加密对象,md5()加密方法
sha256_obj = hashlib.sha256()
sha256_obj.update(info.encode('UTF-8'))
# 调用函数,开始加密
mi_wen = sha256_obj.hexdigest()
print(f"明文:{info},通过sha256加密后得到密文:{mi_wen}")
print('-'*50)
info = '这里是要加密的:12345678'
# 创建hashlib中的加密对象
md5_obj = hashlib.md5('---'.encode('UTF-8')) # 加盐操作
# 设置编码
md5_obj.update(info.encode('UTF-8'))
# 调用函数,开始加密
mi_wen = md5_obj.hexdigest()
print(f"明文:{info},通过md5加密后得到密文:{mi_wen}")

json模块


本质上是一个特殊格式的字符串,但是相比较于字符串而言,json是可以通过键获取值的

判断一个字符串是否符合json的格式:

  • 看字符串是否是由双引号括起来,若不是,那么该字符串转不了json格式数据
  • 若值是由小括号括起来的多个元素,也是不能够转json格式数据的

序列化和反序列化:

  • 序列化:将代码中的数据转化成网络中传输的数据流
    【python中的字典数据 --> json格式的字符串】
    json.dumps(dict,ensure_ascii=False)
  • 反序列化:将网络中传输的数据流还原成代码中的数据格式
    【json格式的字符串 --> python中的字典数据】
    json.loads(json)

代码展示:

import json
#【python中的字典数据 --> json格式的字符串】
d1 = {"数值1":"1","数值2":"2","数值3":"3","数值4":"4"}
print(d1,type(d1))
d1 = {"数值1":"1","数值2":"2","数值3":"3","数值4":"4"}
d1 = json.dumps(d1,ensure_ascii=False)
print(d1,type(d1))
print("_"*50)
#若不是双引号括起来,那么该字符串转不了json格式数据
d2 = {'数值1': '1', '数值2': '2', '数值3': '3', '数值4': '4'}
d2 = json.dumps(d2,ensure_ascii=False)
print(d1,type(d2))
print("_"*50)
# 【json格式的字符串 --> python中的字典数据】
j ='''{"数值1":"1","数值2":"2","数值3":"3","数值4":"4"}'''
print(j,type(j))
j = json.loads(j)
print(j,type(j))

运行结果:
在这里插入图片描述

time 和 datetime模块


  • time.time()
    生成时间戳格式对象,时间戳存储时占用的字节相比较于格式化后的字符串而言,是少很多的。

代码展示:

import time
from datetime import datetimet1 = time.time()
print(t1,type(t1))

运行结果:
在这里插入图片描述

  • 时间戳 ->datetime ->格式化日期转换

代码展示:

import time
from datetime import datetimet1 = time.time()
print(t1,type(t1))
# 时间戳 -> datetime
t1 = datetime.fromtimestamp(t1)
print(t1,type(t1))
#datetime-> 年日月时分秒
t1 = datetime.strftime(t1,'%Y-%m-%d-%H:%M:%S')
print(t1,type(t1))

运行结果:
在这里插入图片描述

  • 字符串 -> datetime-> 时间戳

代码展示:

t1 = '2024-12-06-20:03:13'
print(t1,type(t1))
# 字符串 -> datetime
t1 = datetime.strptime(t1,'%Y-%m-%d-%H:%M:%S')
print(t1,type(t1))
# datetime-> 时间戳
t1 = t1.timestamp()
print(t1,type(t1))

运行结果:
在这里插入图片描述

  • 使用datetime对象中的属性可以时间获取年月日时分秒

代码展示:

import time
from datetime import datetime
t1 = 1733486593.9999
t1 = datetime.fromtimestamp(t1)
print(f"{t1.year}年{t1.month}月{t1.day},{t1.hour}时{t1.minute}分{t1.second}秒")

运行结果:
在这里插入图片描述

os模块


使用os模块中的功能操作文件或者文件夹

  • os.path.exists()判断目标是否存在

并且如果有\b或者\t,\n等特殊含义的命名,需要\来表现

  • os.path.join()路径拼接
  • os.path.abspath(file)获取当前文件所在的路径
  • os.path.dirname()获取某一个文件所处的父级目录路径
  • os.path.isfile()判断一个路径是否是文件
  • os.mkdir()创建一个文件夹
  • 删除路径
    • os.remove()若目标路径是一个文件
    • os.rmdir()若目标文件是一个文件夹

代码展示:

import os
# os.path.join()路径拼接
ml = os.path.join('day09','data','test1')
print(ml)
print(os.path.exists(ml))
print('_'*50)
#获取当前文件所在的路径
ml1 = os.path.abspath(__file__)
print(ml1)
print(os.path.exists(ml1))
print('_'*50)
#获取某一个文件所处的父级目录路径
ml2 = os.path.dirname(ml1)
print(ml2)
print('_'*50)
#判断一个路径是否是文件
print(os.path.isfile(ml1))
print(os.path.isfile(ml2))
print('_'*50)
#判断一个路径是否是文件夹
print(os.path.isdir(ml1))
print(os.path.isdir(ml2))
#创建一个文件夹
ml3 = os.path.join('data','ml3')
os.mkdir(ml3)
#删除路径,若目标路径是一个文件
ml4 = 'E:\projects\pythonprojects\\base\day09\data\\test1'
os.remove(ml4)
#若目标文件是一个文件夹
os.rmdir(ml3)

运行结果:
在这里插入图片描述

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

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

相关文章

小程序 —— Day1

组件 — view和scroll-view view 类似于HTML中的div,是一个块级元素 案例:通过view组件实现页面的基础布局 scroll-view 可滚动的视图区域,用来实现滚动列表效果 案例:实现纵向滚动效果 scroll-x属性:允许横向滚动…

git pull error: cannot lock ref

Git: cannot lock ref ‘refs/remotes/origin/feature/xxx’: refs/remotes/origin/feature/xxx/car’ exists; cannot create refs/remotes/origin/feature/xxx git remote prune origin重新整理服务端和本地的关联关系即可

pubmed关键词搜索技能1:待更新

1,白话变为领域内学术词: 例如,我想要做蛋白质糖基化修饰以功能,这个领域课题,则 第一性原理,首先是拆分词汇:糖基化(一般比蛋白质、修饰、功能要在title中更常见,或者是…

iPhone手机清理软件:相册清理大师推荐

随着智能手机成为我们日常生活的必需品,手机中的数据日益膨胀,尤其是照片和视频这类容易积累的文件。对于iPhone用户来说,管理这些文件,特别是清理相册变得尤为重要。本文将介绍一款备受推崇的iPhone手机清理软件——CleanMyPhone…

SpringBoot 开源停车场管理收费系统

一、下载项目文件 下载源码项目文件口令: 【前端小程序地址】(3.0):伏脂火器白泽知洞座/~6f8d356LNL~:/【后台管理地址】(3.0):伏脂火器仇恨篆洞座/~0f4a356Ks2~:/【岗亭端地址】(3.0):动作火器智汇堂多好/~dd69356K6r~:/复制口令…

网络原理之 TCP 协议

目录 1. TCP 协议格式 2. TCP 原理 (1) 确认应答 (2) 超时重传 (3) 连接管理 a) 三次握手 b) 四次挥手 (4) 滑动窗口 (5) 流量控制 (6) 拥塞控制 (7) 延时应答 (8) 捎带应答 3. TCP 特性 4. 异常情况的处理 1) 进程崩溃 2) 主机关机 (正常流程) 3) 主机掉电 (…

STM32使用RCC(Reset Clock Contorl,复位时钟控制器)配置时钟以及时钟树

RCC主要作用 设置系统时钟SYSCLK(System Clock)频率;设置AHB、APB2、APB1以及各个外设分频因子,从而设置HCLK、PCLK2、PCLK1以及各个外设的时钟频率;控制AHB、APB2、APB1这三条总线时钟以及每个外设的时钟开启&#xf…

安防视频监控平台Liveweb视频汇聚管理系统管理方案

智慧安防监控Liveweb视频管理平台能在复杂的网络环境中,将前端设备统一集中接入与汇聚管理。国标GB28181协议视频监控/视频汇聚Liveweb平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、…

【目标跟踪】AntiUAV600数据集详细介绍

AntiUAV600数据集的提出是为了适应真实场景,即无人机可能会随时随地出现和消失。目前提出的Anti-UAV任务都只是将其看做与跟踪其他目标一样的任务,没有结合现实情况考虑。 论文链接:https://arxiv.org/pdf/2306.15767https://arxiv.org/pdf/…

“原批教育家”原批之星鲁健的杰作——原批俱乐部

伟大的原批教育家——原批之星,名为鲁健,是一位在南京邮电大学智能科学与技术专业中崭露头角的杰出人物。他不仅以其卓越的黑客技术和对网络正义的执着而闻名,更是“远古四神”之一,以其对原批之力的深刻理解和不同见解&#xff0…

IS-IS三

目录 点到点邻接关系建立 ISIS修改链路类型 isis ppp-negotiation 3-way only 仅才用三次握手建立邻居 不向下兼容两次握手 两次握手 自身发送的(Hello报文)IIH 不携带 p2p adj TLV 不处理点到点邻接状态TLV 三次握手 …

Hadoop生态圈框架部署 伪集群版(四)- Zookeeper单机部署

文章目录 前言一、Zookeeper单机部署(手动部署)1. 下载Zookeeper安装包到Linux2. 解压zookeeper安装包3. 配置zookeeper配置文件4. 配置Zookeeper系统环境变量5. 启动Zookeeper6. 停止Zookeeper在这里插入图片描述 注意 前言 本文将详细介绍Zookeeper的…

基于springboot+vue的车辆违章信息管理系统(全套)

一、系统架构 前端:vue | element-ui | html 后端:springboot | mybatis-plus 环境:jdk1.8 | mysql | maven | nodejs 二、代码及数据库 三、功能介绍 01. web端-首页 02. web端-注册 03. web端-登录 04. web端-公告 05. web端-留言…

利用断开的域管理员RDP会话提权

前言 当域内管理员登录过攻击者可控的域内普通机器运维或者排查结束后,退出3389时没有退出账号而是直接关掉了远程桌面,那么会产生哪些风险呢?有些读者第一个想到的肯定就是抓密码,但是如果抓不到明文密码又或者无法pth呢&#x…

【Unity 动画】设置跟运动(Apply Root)模型跟着动画产生位移

一、导入的动画本身必须有跟随动画产生位移或者旋转的效果 二、导入Unity后 在Unity中,根运动(Root Motion)是指动画中角色根节点的移动和旋转。根节点通常是角色的根骨骼(Root Bone),它决定了角色的整体…

uni-app简洁的移动端登录注册界面

非常简洁的登录、注册界面模板&#xff0c;使用uni-app编写&#xff0c;直接复制粘贴即可&#xff0c;无任何引用&#xff0c;全部公开。 废话不多说&#xff0c;代码如下&#xff1a; login.vue文件 <template><view class"content"><view class&quo…

【开源免费】基于SpringBoot+Vue.JS购物推荐网站(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 073 &#xff0c;文末自助获取源码 \color{red}{T073&#xff0c;文末自助获取源码} T073&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

AI在SEO中的应用与关键词优化探讨

内容概要 在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;技术为搜索引擎优化&#xff08;SEO&#xff09;带来了革命性的改变。传统的SEO主要依赖于人为的经验和判断&#xff0c;而AI则通过算法分析海量数据&#xff0c;提供更加精准和高效的方式优化关键词…

Tomcat新手成长之路:安装部署优化全解析(下)

接上篇《Tomcat新手成长之路&#xff1a;安装部署优化全解析&#xff08;上&#xff09;》: link 文章目录 7.应用部署7.1.上下文7.2.启动时进行部署7.3.动态应用部署 8.Tomcat 类加载机制8.1.简介8.2.类加载器定义8.3.XML解析器和 Java 9.JMS监控9.1.简介9.2.启用 JMX 远程监…

服务器数据恢复—服务器raid0阵列硬盘指示灯显示黄颜色的数据恢复案例

服务器数据恢复环境&故障情况&#xff1a; 某品牌服务器上有一组由两块SAS硬盘组建的raid0阵列&#xff0c;上层是windows server操作系统ntfs文件系统。服务器上一个硬盘指示灯显示黄颜色&#xff0c;该指示灯对应的硬盘离线&#xff0c;raid不可用。 服务器数据恢复过程…