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 json

data = {"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 json

json_str = '{"name": "Alice", "age": 30}'
data = json.loads(json_str)
print(data)
  1. 读写 JSON 文件json 模块还提供了 json.dump()json.load() 函数,用于将 Python 对象写入 JSON 文件和从 JSON 文件中读取数据。
import json

data = {"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))




44b1ff2ece9911c1b503da6436ea0310
32

你可能感兴趣的:(python,学习,学习方法,笔记)