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.…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...

(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...