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 模块的几个主要功能:

  1. 将 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}
  1. 将 JSON 字符串转换为 Python 对象json.loads() 函数可以将 JSON 格式的字符串转换为对应的 Python 对象(如字典、列表等)。
import jsonjson_str = '{"name": "Alice", "age": 30}'
data = json.loads(json_str)
print(data)
  1. 读写 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 对象的语法,具有以下特点:

  1. 键值对形式:JSON 字符串由键值对构成,键和值之间使用冒号分隔,不同键值对之间使用逗号分隔。键必须是字符串,值可以是字符串、数字、布尔值、对象、数组或 null。

  2. 数据结构:JSON 字符串支持嵌套的对象和数组结构,可以构建复杂的数据结构。对象使用花括号 {} 表示,数组使用方括号 [] 表示。

  3. 易读性:JSON 字符串具有良好的可读性,便于人类阅读和编写。通常采用缩进格式化,使数据结构更加清晰。

例如,下面是一个简单的 JSON 字符串示例:

{"name": "Alice","age": 30,"is_student": true,"courses": ["Math", "Science"],"address": {"street": "123 Main St","city": "Cityville"}
}

补充2:JSON字符串和字典的区别

JSON 字符串和 Python 字典之间有一些区别,尽管它们在表现形式上有些相似,但是在一些细节上有一些区别:

  1. JSON 字符串是一种数据交换格式,而字典是 Python 中的数据结构

    • JSON 是一种独立于编程语言的数据交换格式,通常用于在不同系统之间传输数据。在 Python 中,可以使用 json 模块来处理 JSON 数据。
    • 字典是 Python 中的一种数据结构,用于存储键值对。字典是 Python 的内置数据类型,用于在程序中组织和管理数据。
  2. JSON 字符串是文本,而字典是 Python 的数据结构

    • JSON 字符串是由文本字符组成的字符串,通常用于数据的序列化和反序列化。
    • 字典是 Python 中的数据结构,具有键值对的组织形式,可以直接在 Python 中使用。
  3. 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

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

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

相关文章

Java桥接模式源码剖析及使用场景

目录 一、介绍二、项目管理系统中使用桥接模式三、权限管理中使用桥接模式四、Java JDBC中使用桥接模式 一、介绍 它的主要目的是将抽象化与实现化分离&#xff0c;使得二者可以独立变化&#xff0c;就像一个桥&#xff0c;将两个变化维度连接起来。各个维度都可以独立的变化。…

python数据分析numpy基础之sort对数组排序

1 python数据分析numpy基础之sort对数组排序 numpy数组和python的内置列表类似&#xff0c;也可以进行排序&#xff0c;numpy.sort()返回排序后的数组副本&#xff0c;而ndarray.sort()对数组进行就地排序&#xff0c;会改变原数组。 用法 numpy.sort(a, axis-1, kindNone, …

解决cryptography库报错【DLL load failed while importing _rust】

解决 DLL load failed while importing _rust python使用库cryptography问题分析解决办法 python使用库cryptography 当 from cryptography.hazmat.bindings._rust import exceptions as rust_exceptions 时&#xff0c;会报错&#xff1a; ImportError: DLL load failed whi…

机器学习--循环神经网络(RNN)3

本篇文章结合具体的例子来介绍一下LSTM运算方式以及原理。请结合上篇文章的介绍食用。 一、具体例子 如上图所示&#xff0c;网络里面只有一个 LSTM 的单元&#xff0c;输入都是三维的向量&#xff0c;输出都是一维的输出。 这三维的向量跟输出还有记忆元的关系是这样的。 假设…

深度学习:如何面对隐私和安全方面的挑战

深度学习技术的广泛应用推动了人工智能的快速发展&#xff0c;但同时也引发了关于隐私和安全的深层次担忧。如何在保护用户隐私的同时实现高效的模型训练和推理&#xff0c;是深度学习领域亟待解决的问题。差分隐私、联邦学习等技术的出现&#xff0c;为这一挑战提供了可能的解…

备战蓝桥之搜索

2024.3.12 P2802 回家 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) import java.awt.Checkbox; import java.awt.PageAttributes.OriginType; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWrite…

k8s-生产级的k8s高可用(2) 25

部署containerd k8s2、k8s3、k8s4在配置前需要重置节点&#xff08;reset&#xff09;在上一章已完成 禁用所有节点docker和cri-docker服务 所有节点清除iptables规则 重置后全部节点重启 由于之前部署过docker&#xff0c;因此containerd默认已安装 修改配置 启动containe…

python学习、开发实用文档分享

今天给大家分享两个好用的关于python django框架使用的在线文档 Django中文在线文档: Django 文档 | Django 文档 | Django django rest framework 文档 1 - Serialization - Django REST framework中文站点 有开发和学习中遇到不会的, 或者需要学习的技能点直接去上面两个…

嵌入式工资为啥比纯软工资低那么多?

嵌入式工资为啥比纯软工资低那么多&#xff1f; 在开始前我分享下我的经历&#xff0c;我刚入行时遇到一个好公司和师父&#xff0c;给了我机会&#xff0c;一年时间从3k薪资涨到18k的&#xff0c; 我师父给了一些 电气工程师学习方法和资料&#xff0c;让我不断提升自己&…

并发支持库(3)-互斥

互斥可以对操作集合上锁&#xff0c;避免多个线程同时访问共享资源。这些操作集合可以看作是一次原子操作。 本文章的代码库&#xff1a; https://gitee.com/gamestorm577/CppStd 1. 互斥类 c提供了各种互斥类。 mutex 构造函数 默认构造函数构造一个处于未锁定状态的互…

短路逻辑运算--c语言

#include<stdio.h>int main() { int i1; i,i||i; printf("%d",i);//3return 0; } 再逻辑运算的原则一定优先于其他逻辑判断&#xff0c;再这个式子中||前面的结果已经为真存在逻辑短路的情况所以不用管后面的式子。 i&#xff0c;i自增两次i3&#xff0c;

爬虫技术之正则提取静态页面数据

第一天 简单示例 在爬虫过程中&#xff0c;我们获取到了页面之后&#xff0c;通常需要做的就是解析数据&#xff0c;将数据持久化到数据库为我所用。如何又快又准确得提取有效数据&#xff1f;这是一门技术&#xff0c;看了我的博客之前可能略有难度&#xff0c;但各位大师看…

redis源码分析

是什么 是基于内存(而不是磁盘)的kv(而不是关系型mysql那种)数据库&#xff0c;通过空间换时间 源码分析 跳表skiplist 假设你有个有序链表&#xff0c;你想看某个特定的值是否出现在这个链表中&#xff0c;那你是不是只能遍历一次链表才能知道&#xff0c;时间复杂度为O(n…

Postman环境变量全局变量设置(详解版)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 在公司中&#xff0c;一般会存在开发环境、测试环境、线上环境等…

找不到mfc140u.dll怎么办?修复缺失mfc140u.dll的多种方案分享

mfc140u.dll文件是一个重要的动态链接库文件&#xff0c;它在Windows操作系统中发挥着关键的作用。由于各种原因&#xff0c;例如应用程序冲突或系统错误等&#xff0c;mfc140u.dll文件有时会出现丢失的情况。一旦发生这种问题&#xff0c;运行依赖此文件的应用程序将无法正常启…

力扣刷题日记——L724. 寻找数组的中心下标

1. 前言 今天是力扣刷题日记的第二天&#xff0c;今天依旧是一道简单题啊&#xff0c;慢慢来&#xff0c;先看看题目是什么吧。 2. 题目描述 给你一个整数数组 nums &#xff0c;请计算数组的 中心下标。 数组 中心下标 是数组的一个下标&#xff0c;其左侧所有元素相加的和…

JSP中间件漏洞

jsp的注入最难挖 另外3个好挖 struts2 url有action 就代表是struts2 用漏洞利用工具 下面之这两个一般都可以用工具扫一下 、 有些网站看起来没有 action实际上我们提交了 我们的账号和密码 之后就有了 工具包是下面 这些 github上面也有 用法就是如下图 把url放进去就…

数据库驱动和url连接示例

1.MySQL 配置示例&#xff1a;↓ driver_class:com.mysql.cj.jdbc.Driver url:jdbc:mysql://IP地址:端口号/数据库名?characterEncodingUTF-8&useSSLfalse&useUnicodetrue&serverTimezoneUTC 2.MySQL(使用information_schema查询表结构) 配置示例&#xff1a;↓…

关于数据预处理的重要性

主要是为了计算机能够准确的理解数据 以下是需要处理的数据&#xff1a; 1、缺失值 仅一部分实例有值的特性&#xff0c;以及没有任何特征值的实例都被视为缺失数据 一个特征丢失了超过5%~10%的值&#xff0c;被认为是缺失数据 缺失值实例应该被删除&#xff0c;避免引入偏…

【ST-学习链接】

ST-学习链接 ■ 江科大STM32学习笔记&#xff08;上下&#xff09;■ STM32 学习&#xff08;四&#xff09;中断系统 ■ 江科大STM32学习笔记&#xff08;上下&#xff09; 江科大STM32学习笔记&#xff08;上&#xff09; 江科大STM32学习笔记&#xff08;下 ■ STM32 学习…