Python基础学习(11)常用模块
文章目录
- 一、time
- 二、random
- 三、os
- 四、sys
- 五、json
- 补充1:JSON字符串
- 补充2:JSON字符串和字典的区别
- 六、hashlib
Python基础学习(1)基本知识
Python基础学习(2)序列类型方法与数据类型转换
Python基础学习(3)进阶字符串(格式化输出)
Python基础学习(4)散列类型(无序序列)
Python基础学习(5)流程控制
Python基础学习(6)函数基础与函数参数
Python基础学习(7)函数作用域与名称空间.
Python基础学习(8)函数进阶-闭包/装饰器
Python基础学习(9)迭代器/生成器
一、time
python提供的内置模块 主要提供了时间 日期
import time# 格林威尔时间戳 1970-1-1到现在的秒数
print(time.time())#用于做差#让程序进行休眠
time.sleep(2)
print('我休息了2秒钟')#获取当前的详细时间(以元组的形式)
res=time.localtime()
print(res)# 将当前的时间格式化
print(time.asctime(time.localtime()))# 获得指定的当前日期 并且格式化为字符串
# 年月日 星期几res_1 = time.strftime('%Y/%m/%d %A', time.localtime())
print(res_1)# 时分秒 上午/下午
res_2 = time.strftime('%H:%M:%S %p', time.localtime())
pri nt(res_2)
二、random
主要获得随机数的功能
可以通过随机模块 可以做一些小项目 猜拳 斗地主 验证码 抽奖等等
import random# 生成一个大于0并且小于1的随机数
a = random.random()
print(a)
print('%.1f'%a)# 获得指定范围之间的随机整数 必须是整数 第一个值要比第二值小
b = random.randint(1,10)#包括1和10
print(b)# 获得指定范围之间的随机小数 取决于四舍五入 第一个不一定要比第二个值小
c = random.uniform(2.5, 10)
print(c)
print('%.1f'%c)# 在列表里随机抽取 列表元组有序 无序类型不行
ll = [1, 2, 3, 5, 6, 8, 7, 9, 5]
d=random.choice(ll)
print(d)# 打乱列表顺序 俗称洗牌 列表可以改变
ll = [1, 2, 3, 5, 6, 8, 7, 9, 5]
random.shuffle(ll)
print(ll)
三、os
主要运行在操作系统上的相关信息
#os.system 运行cmd命令 关机 打开计算器 cmd 画图工具
os.system('start cmd') #打开cmd
os.system('start calc')#打开计算器
os.system('start osk') #打开屏幕键盘,
os.system('start mspaint') #打开画图工具#获得当前文件所在路径目录
print(os.getcwd())# 在当前路径新建文件夹 已经存在会报错
os.mkdir('text')# 删除文件夹 只能删除空白文件夹
os.rmdir('text')# 对文件进行重命名
os.rename('text','texe2')# 判断当前路径文件是否存在 返回布尔类型
print(os.path.exists('main.py'))
# 将散列的部分组成一个完整路径
# 别人给你了几个路径或者文件名
# Python_116 Day15 os模块.py
print(os.path.join('Python_116', 'Day15', 'os模块.py'))# 组成路径 并不是真实的路径后期你们可以自己组成真实存在的路径 只是说这个方法可以组成路径# 对路径去掉文件名(返回父路径)
print(os.path.dirname('Python_116\Day15\os模块'))# 对原有的路径进行重新组成(嵌套)
print(os.path.join(os.path.dirname('Python_116\Day15\os模块.py'), 'os.py'))# 去掉路径获得文件名
print(os.path.basename('Python_116\Day15\os模块.py'))
四、sys
sys 主要用于获得python解释器的相关信息
import sys#获得项目与环境位置
print(sys.path)# 获得当前文件位置
print(sys.argv)# 获取当前python版本信息
print(sys.version)# 获取当前python操作系统
print(sys.platform)
# win32架构 大部分都是win32
# 解释器 服务器基于win32
五、json
json 模块是 Python 标准库中的一个模块,用于处理 JSON(JavaScript Object Notation)数据格式。JSON 是一种轻量级的数据交换格式,常用于前后端数据传输、配置文件等场景。
json存储数据都是为序列化数据
序列化:计算机底层所识别的机器码
反序列化:我们能够看懂的数据
json 模块提供了一组函数,用于在 Python 中解析 JSON 数据(将 JSON 字符串解析为 Python 对象)和序列化 Python 对象(将 Python 对象转换为 JSON 字符串)。以下是 json 模块的几个主要功能:
- 将 Python 对象转换为 JSON 字符串:
json.dumps()函数可以将 Python 对象(如字典、列表等)转换为对应的 JSON 格式的字符串。
import jsondata = {"name": "Alice", "age": 30}
date_2='我是好人'
json_str = json.dumps(data)
json_str_2=json.dumps(data_2)
print(json_str_2)
print(json_str)
->>"\u6211\u662f\u597d\u4eba"
->>{'name': 'Alice', 'age': 30}
- 将 JSON 字符串转换为 Python 对象:
json.loads()函数可以将 JSON 格式的字符串转换为对应的 Python 对象(如字典、列表等)。
import jsonjson_str = '{"name": "Alice", "age": 30}'
data = json.loads(json_str)
print(data)
- 读写 JSON 文件:
json模块还提供了json.dump()和json.load()函数,用于将 Python 对象写入 JSON 文件和从 JSON 文件中读取数据。
import jsondata = {"name": "Alice", "age": 30}# 写入 JSON 文件
with open("data.json", "w") as f:json.dump(data, f)# 从 JSON 文件中读取数据
with open("data.json", "r") as f:loaded_data = json.load(f)print(loaded_data)
通过 json 模块,你可以方便地在 Python 中处理 JSON 格式的数据,实现数据的序列化和反序列化,以及与其他系统进行数据交换。
补充1:JSON字符串
JSON(JavaScript Object Notation)字符串是一种轻量级的数据交换格式,通常用于在不同系统之间传输和存储数据。JSON 字符串由一系列 Unicode 字符组成,采用类似于 JavaScript 对象的语法,具有以下特点:
-
键值对形式:JSON 字符串由键值对构成,键和值之间使用冒号分隔,不同键值对之间使用逗号分隔。键必须是字符串,值可以是字符串、数字、布尔值、对象、数组或 null。
-
数据结构:JSON 字符串支持嵌套的对象和数组结构,可以构建复杂的数据结构。对象使用花括号
{}表示,数组使用方括号[]表示。 -
易读性:JSON 字符串具有良好的可读性,便于人类阅读和编写。通常采用缩进格式化,使数据结构更加清晰。
例如,下面是一个简单的 JSON 字符串示例:
{"name": "Alice","age": 30,"is_student": true,"courses": ["Math", "Science"],"address": {"street": "123 Main St","city": "Cityville"}
}
补充2:JSON字符串和字典的区别
JSON 字符串和 Python 字典之间有一些区别,尽管它们在表现形式上有些相似,但是在一些细节上有一些区别:
-
JSON 字符串是一种数据交换格式,而字典是 Python 中的数据结构:
- JSON 是一种独立于编程语言的数据交换格式,通常用于在不同系统之间传输数据。在 Python 中,可以使用
json模块来处理 JSON 数据。 - 字典是 Python 中的一种数据结构,用于存储键值对。字典是 Python 的内置数据类型,用于在程序中组织和管理数据。
- JSON 是一种独立于编程语言的数据交换格式,通常用于在不同系统之间传输数据。在 Python 中,可以使用
-
JSON 字符串是文本,而字典是 Python 的数据结构:
- JSON 字符串是由文本字符组成的字符串,通常用于数据的序列化和反序列化。
- 字典是 Python 中的数据结构,具有键值对的组织形式,可以直接在 Python 中使用。
-
JSON 字符串需要遵循特定的格式,而字典在 Python 中有自己的语法:
- JSON 字符串需要遵循 JSON 标准的语法规则,如键名必须是双引号括起来的字符串。
- 字典在 Python 中使用花括号
{}表示,键值对之间使用冒号:分隔,不需要特定的引号。
虽然 JSON 字符串和 Python 字典在某种程度上有相似之处,但它们的用途和特性是不同的。在 Python 中,可以通过 json 模块来处理 JSON 数据,将 JSON 字符串转换为 Python 对象(如字典),或者将 Python 对象序列化为 JSON 字符串。这使得 Python 在处理跨系统数据交换时更加灵活和方便。
在 Python 中,可以使用 json 模块将 JSON 字符串解析为 Python 对象,或者将 Python 对象序列化为 JSON 字符串,方便数据的处理和交换。JSON 字符串在 Web 开发、API 接口、配置文件等领域被广泛应用,是一种通用的数据格式。
六、hashlib
哈希模块:
哈希是一种规则 可以接收一个数据 来生成一个哈希数据 作用主要是数据加密
特点:
1.传入的内容是一样 hash值也是一样
2.hash值正常情况下 破解难度较大
3.不管传的数据/文件多大多长 最后得到的哈希值长度只有32位
注册登录的原理就是用到了哈希
注册 --> 输入密码 2. 哈希加密 3.得到哈希值 4.保存哈希值
登录 --> 输入密码 2. 哈希加密 3.得到哈希值 4.匹配哈希值
wifi破解 --> 笨蛋方法,找一个密码字典(记录了很多常用的密码的文本)
拿里面的密码一个个去尝试 --> 密码简单 常见
那么我现在觉得这个密码有风险我现在就给他加了点东西 123456+‘多喝热水’
生成的哈希值就是基于123456多喝热水 生成的 而不是123456
如果你用单纯的123456来破 是破解不了的
import hashlib
a = hashlib.md5('多喝热水'.encode())#哈希算法只能接受字节序列
print(a) # 哈希对象
print(type(a))
# 现在还不算一个哈希值
# 把哈希值赋值给新的数据
# 数据分块
data_chunk1 = "Hello, "
data_chunk2 = "world!"# 逐步添加数据并更新哈希对象
a.update(data_chunk1.encode())
a.update(data_chunk2.encode())#update作用于字典
b = a.hexdigest()#转化十六机制增强可读性
print(b)
print(len(b))
<md5 _hashlib.HASH object @ 0x0000026178E28970>
<class ‘_hashlib.HASH’>
44b1ff2ece9911c1b503da6436ea0310
32
相关文章:
Python基础学习(11)常用模块
文章目录 一、time二、random三、os四、sys五、json补充1:JSON字符串补充2:JSON字符串和字典的区别 六、hashlib Python基础学习(1)基本知识 Python基础学习(2)序列类型方法与数据类型转换 Python基础学习(3)进阶字符串(格式化输出) Python基础学习(4)散…...
嵌入式学习37-TCP并发模型
TCP并发模型: 1.TCP多线程模型: 缺点: 1.创建线程会带来 资源开销 2.能够实现的 并发量 比较有限 2.IO模型: 1.阻塞IO: 没有…...
C语言字符函数和字符串函数
前言 今天这篇博客咱们一起来认识一些特殊的函数,在编程的过程中,我们经常要处理字符和字符串,为了方便字符和字符串,C语言提供了一些库函数,让我们一起看看这些函数都有什么功能吧!!࿰…...
Go语言必知必会100问题-22 空切片与nil切片有区别吗?
空切片与nil切片有区别吗? 很多开发人员经常混淆nil切片和空切片,不清楚什么时候使用空切片什么时候使用nil,而有些库函数又对这两者使用进行了区分。下面先来看看它们的定义。 空切片是length为0的切片当切片等于nil时为nil切片 下面是几种不同空切片…...
【C++进阶】C++多态概念详解
C多态概念详解 一,多态概念二,多态的定义2.1 多态构成的条件2.2 什么是虚函数2.3 虚函数的重写2.3.1 虚函数重写的特例2.3.2 override和final 2.4 重载和重写(覆盖)和重定义(隐藏)的区别 三,抽象…...
Python 导入Excel三维坐标数据 生成三维曲面地形图(面) 2、线条平滑曲面但有间隔
环境和包: 环境 python:python-3.12.0-amd64包: matplotlib 3.8.2 pandas 2.1.4 openpyxl 3.1.2 scipy 1.12.0 代码: import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from scipy.interpolate import griddata imp…...
前端精准测试调用链路分析
精准测试在评估需求的测试范围时,需要评估一下代码的影响范围,这个范围有两部分:一是需求直接修改的代码;二是修改代码影响到的功能模块。代码影响到的功能一般是通过调用链路分析来实现的,java和kotlin代码可以由java…...
Objective-C blocks 概要
1.block的使用 1.1什么是block? Blocks是C语言的扩充功能:带有自动变量(局部变量)的匿名函数。 “带有自动变量”在Blocks中表现为“截取自动变量" “匿名函数”就是“不带名称的函数” 块,封装了函数调用及调用…...
Linux操作系统-07-Linux安装应用
一、使用rpm安装应用(不推荐) 先下载到本地,以.rpm文件名结尾,下载完成后,再安装 rpm -qa | grep mysql #查询当前系统是否有下载过mysql包 先上传mysql的rpm安装包到linux的opt目录 安装 rpm -ivh …...
DevOps实战:Docker、Kubernetes与Jenkins的完美融合
DevOps与容器化技术:Docker、Kubernetes和Jenkins 引言 在软件开发领域,DevOps文化和容器化技术已经成为当今最热门的话题之一。DevOps的目标是缩短开发和运维之间的距离,提高软件交付的速度和质量。而容器化技术,如Docker和Kub…...
Python面向对象——程序架构
需求 创建图形管理器 -记录多种图形(圆形、矩形.) --提供计算总面积的方法, 要求:增加新图形,不影响图形管理器 测试: 创建图形管理器,存储多个图形对象。 通过图形管理器,调用计算总面积方法 思路 代码 # ------…...
springboot单体项目链路日志跟踪及接口耗时
最近接触一个新的传统项目,在联调过程中,查看日志特别不方便,既无trackId,即无接口耗时,所以写了该博客。话不多说,直接上代码 1、实体类user package com.yk.domain;import lombok.Data;@Data public class User {private Long id;private String username;private St…...
力扣hot---岛屿数量
dfs思路: 首先通过两层for循环遍历每一个点,如果这个点为0或者2(这个2是什么呢?是在遍历该点以及该点连成的这一片区域中,因为通过深度优先搜索,遍历该点就等于遍历这一片区域,遍历这篇区域中的…...
如何在Linux使用docker安装Plik并实现无公网ip上传下载内网存储的文件资源
文章目录 1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默&…...
Nginx反向代理详解
1. 什么是反向代理 反向代理是一种服务器代理的方式,它代理了客户端的请求并将请求转发给后端服务器,然后将后端服务器的响应返回给客户端。在这个过程中,客户端并不直接与后端服务器通信,而是通过反向代理服务器来实现请求转发和…...
【Android】 ClassLoader 知识点提炼
1.Java中的 ClassLoader 1.1 、ClassLoader的类型 Java 中的类加载器主要有两种类型,即系统类加载器和自定义类加载器。其中系统类 加载器包括3种,分别是 Bootstrap ClassLoader、Extensions ClassLoader 和 Application ClassLoader。 1.1.1.Bootstra…...
16. C++标准库
C标准库兼容C语言标准函数库,可以在C标准库中直接使用C语言标准函数库文件,同时C标准库增加了自己的源代码文件,新增文件使用C编写,多数代码放在std命名空间中,所以连接C标准库文件后还需要 using namespace std;。 【…...
JVM内存结构介绍
1. 什么是JVM 我们都知道在 Windows 系统上一个软件包装包是 exe 后缀的,而这个软件包在苹果的 Mac OSX 系统上是无法安装的。类似地,Mac OSX 系统上软件安装包则是 dmg 后缀,同样无法在 Windows 系统上安装。 Java 代码为什么可以在 Windows…...
Linux常见指令总结
ls:显示当前目录下文件列表 常用的命令行参数: -l 显示更多的文件属性 -a 显示所有的文件/目录(包括隐藏的) -d 只显示目录 ps:参数可以叠加使用。 例如:ls -la 显示所有文件…...
Day35-Linux网络管理5
Day35-Linux网络管理5 1. 网卡配置2. DNS客户端域名解析配置3. 给网卡配多个IP4. ip地址查看和设置4.1 ifconfig命令4.2 ip命令4.3 ip命令:查看和设置网络配置4.4 ip命令帮助 5. 路由5.1 路由功能分类:5.2 查看路由:5.3 路由表:5.…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...
消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...
数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)
名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 原创笔记:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:《数据结构第4章 数组和广义表》…...
多元隐函数 偏导公式
我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z、 …...
