当前位置: 首页 > news >正文

20. 内置模块

一、random模块

  random 模块用来创建随机数的模块。

random.random()                                 # 随机生成一个大于0且小于1之间的小数
random.randint(a, b)                            # 随机生成一个大于等于a小于等于b的随机整数
random.uniform(a, b)                            # 随机生成一个大于等于a小于等于b的随机浮点数
random.choice(seq)                              # 随机选择一个seq序列中的成员
random.sample(population, k, *, counts=None)    # 随机选择多个成员
random.shuffle(x)                               # 将序列顺序随机打乱
import randomresult = random.random()                        # 随机生成一个大于0且小于1之间的小数
print("result: ",result)result = random.randint(10,20)                  # 随机生成一个大于等于a小于等于b的随机整数
print("result: ",result)result = random.uniform(10,20)                  # 随机生成一个大于等于a小于等于b的随机浮点数
print("result: %f" %result)result = random.choice([11,22,33,44,55])        # 随机选择一个seq序列中的成员
print(f"result: {result}")result = random.sample([11,22,33,44,55],3)      # 随机选择多个成员
print(f"result: {result}")num_list = [11,22,33,44,55]
random.shuffle(num_list)                        # 将序列顺序随机打乱
print("result: {}".format(num_list))

二、hashlib模块

  hashlib 模块可以用来实现加密。

hashlib.md5(str)               # 用于实现MD5加密
import hashlibdata = "Sakura"
obj = hashlib.md5("小樱".encode("utf-8"))           # 加盐
obj.update(data.encode("utf-8"))
result = obj.hexdigest()
print(result)                                       # 密文

三、json模块

  json 本质上是一个特定结构的字符串,它用于打通不同编程语言之间相互进行通信时的数据格式问题。Python 中默认转换为 json 的类型有 字符串、数值类型、列表、元组、字典、布尔值 和 None。其中,元组转换为 json 类型 () 会变为 [],None 转换为 json 会变为 null,Flase 和 True 转换为 json 会变为 flase 和 true。

  • 序列化:将 Python 数据类型转换为 JSON 格式字符串
  • 反序列化:将 JSON 格式字符串转换为 Python 数据类型
json.dumps(obj)          # 得到json格式的字符串
json.loads(obj)          # json格式的字符串转换为字典
json.dump(obj,fp)        # 将json格式的字符串写入到文件
json.load(obj,fp)        # 将文件中的json格式的字符串转换为字典
import jsoninfo = {"name":"小樱","age":10}data_json = json.dumps(info,ensure_ascii=False,indent=4)            # 序列化
print(data_json)
print(type(data_json))data_dict = json.loads(data_json)                                   # 反序列化
print(data_dict)
print(type(data_dict))
import jsoninfo = {"name":"小樱","age":10}with open("info.json",mode="w",encoding="utf-8") as f:json.dump(info,f,ensure_ascii=False)with open("info.json",mode="r",encoding="utf-8") as f:data_dict = json.load(f)print(data_dict)

  如果我们传入其它的对象类型,可能会转换 json 格式出错,此时,我们可以显示的转换为字符串类型来解决这个问题。

import json
from datetime import datedata_list = [{"name":"Sakura","age":10,"birth":date(1986,1,1).strftime("%Y-%m-%d")},{"name":"Mikoto","age":14,"brith":date(1995,5,2).strftime("%Y-%m-%d")}
]jsoon_data = json.dumps(data_list,ensure_ascii=False)
print(jsoon_data)

  我们也可以自定义类继承 JSONEncoder 类来实现序列化。

import json
from json import JSONEncoder
from datetime import datedata_list = [{"name":"Sakura","age":10,"birth":date(1986,1,1)},{"name":"Mikoto","age":14,"brith":date(1995,5,2)}
]class MyJSONEncoder(JSONEncoder):def default(self, o):# 判断o的类型if type(o) == date:return o.strftime("%Y-%m-%d")return super().default(o)jsoon_data = json.dumps(data_list,ensure_ascii=False,cls=MyJSONEncoder)
print(jsoon_data)

四、time模块与datetime模块

time.time()                                                                                           # 获取时间戳
time.sleep(secs)                                                                                      # 睡眠secs秒
datetime.datetime.now()                                                                               # 获取当前时间
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)    # 运算加减指定时间
import timet1 = time.time()
print(t1)time.sleep(1)t2 = time.time()
print(t2-t1)
import datetimeday1 = datetime.datetime.now()
print(day1)day2 = day1 + datetime.timedelta(days=3)
print(day2)day3 = day1 + datetime.timedelta(weeks=-1)
print(day3)

【1】字符串 --> datetime 类型

from datetime import datetimetext = "1986-04-01"date = datetime.strptime(text,"%Y-%m-%d")
print(date)
print(type(date))

【2】、datetime 类型 --> 字符串

from datetime import datetimedate = datetime.now()str = date.strftime("%Y-%m-%d")
print(str)
print(type(str))

【3】、时间戳 --> datetime 类型

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

【4】、datetime 类型 --> 时间戳

from datetime import datetimedate = datetime.now()
t1 = date.timestamp()
print(t1)
print(type(t1))

相关文章:

20. 内置模块

一、random模块 random 模块用来创建随机数的模块。 random.random() # 随机生成一个大于0且小于1之间的小数 random.randint(a, b) # 随机生成一个大于等于a小于等于b的随机整数 random.uniform(a, b) …...

《知识拓展 · 统一建模语言UML》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...

计算机网络-Wireshark探索ARP

使用工具 Wiresharkarp: To inspect and clear the cache used by the ARP protocol on your computer.curl(MacOS)ifconfig(MacOS or Linux): to inspect the state of your computer’s network interface.route/netstat: To inspect the routes used by your computer.Brows…...

减少30%人工处理时间,AI OCR与表格识别助力医疗化验单快速处理

在医疗行业,化验单作为重要的诊断依据和数据来源,涉及大量的文字和表格信息,传统的手工输入和数据处理方式不仅繁琐,而且容易出错,给医院的运营效率和数据准确性带来较大挑战。随着人工智能技术的快速发展,…...

1.2.3计算机软件

一个完整的计算机系统由硬件和软件组成,用户使用软件,而软件运行在硬件之上,软件进一步的划分为两类:应用软件和系统软件。普通用户通常只会跟应用软件打交道。应用软件是为了解决用户的某种特定的需求而研发出来的。除了每个人都…...

二、uni-forms

避坑指南:uni-forms表单在uni-app中的实践经验-CSDN博客...

Android13开机向导

文章目录 前言需求-场景第三方资料说明需求思路按照平台 思路 从配置上去 feature换个思路,去feature。SimMissingActivity 判断跳过逻辑SetupWizardUtils 判断SIM 、 hasSystemFeature FEATURE_TELEPHONYPackageManager.FEATURE_TELEPHONYApplicationPackageManage…...

软件测试丨Appium 源码分析与定制

在本文中,我们将深入Appium的源码,探索它的底层架构、定制化使用方法和给软件测试带来的优势。我们将详细介绍这些技术如何解决实际问题,并与大家分享一些实用的案例,以帮助读者更好地理解和应用这一技术。 Appium简介 什么是App…...

1.网络知识-IP与子网掩码的关系及计算实例

IP与子网掩码 说实话,之前没有注意过,今天我打开自己的办公地电脑,看到我的网络配置如下: 我看到我的子网掩码是255.255.254.0,我就奇怪了,我经常见到的子网掩码都是255.255.255.0啊?难道公司配…...

Android中Gradle常用配置

前言 本文记录了一些常用的gradle配置,基本上都是平时开发中可能会使用到的,如果有新内容会不定时更新,附官网 1.依赖库版本写法 不推荐写法: dependencies {compile com.example.code.abc:def:2. // 不推荐的写法 }这样写虽然可…...

Linux操作系统3-文件与IO操作2(文件描述符fd与文件重定向)

上篇文章:Linux操作系统3-文件与IO操作1(从C语言IO操作到系统调用)-CSDN博客 本篇代码Gitee仓库:myLerningCode 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 本篇重点:文件描述符fd与文件重定向 目录 一. 文件描述…...

k8s调度策略

调度策略 binpack(装箱策略) Binpacking策略(又称装箱问题)是一种优化算法,用于将物品有效地放入容器(或“箱子”)中,使得所使用的容器数量最少,Kubernetes等集群管理系…...

uniapp中父组件传参到子组件页面渲染不生效问题处理实战记录

上篇文件介绍了,父组件数据更新正常但是页面渲染不生效的问题,详情可以看下:uniapp中父组件数组更新后与页面渲染数组不一致实战记录 本文在此基础上由于新增需求衍生出新的问题.本文只记录一下解决思路. 下面说下新增需求方便理解场景: 商品信息设置中添加抽奖概率设置…...

螺丝螺帽缺陷检测识别数据集,支持yolo,coco,voc三种格式的标记,一共3081张图片

螺丝螺帽缺陷检测识别数据集,支持yolo,coco,voc三种格式的标记,一共3081张图片 3081总图像数 数据集分割 训练组90% 2781图片 有效集7% 220图片 测试集3% 80图片 预处理…...

一个简单带颜色的Map

越简单 越实用。越少设计,越易懂。 需求背景: 创建方法,声明一个hashset, 元素为 {“#DE3200”, “#FA8C00”, “#027B00”, “#27B600”, “#5EB600”} 。 对应的key为 key1 、key2、key3、key4、key5。 封装该方法&#xff0c…...

kubeadm安装K8s集群之基础环境配置

系列文章目录 1.kubeadm安装K8s集群之基础环境配置 2.kubeadm安装K8s集群之高可用组件keepalivednginx 3.kubeadm安装K8s集群之master节点加入 4.kubeadm安装K8s集群之worker1节点加入 kubeadm安装K8s集群基础环境配置 1.首先确保所有机器可以通信,然后配置主机host…...

前端实现在线预览excel文件

在前端开发中,经常会遇到需要在线预览各种文件的需求。本文将介绍如何使用前端技术实现在线预览 Excel 文件的功能。 一、基于微软office服务的excel预览 获取要预览的 Excel 文件的 URL(例如存储在 OneDrive 或 SharePoint 上的文件)。 使…...

关于idea-Java-servlet-Tomcat-Web开发中出现404NOT FOUND问题的解决

在做web项目时,第一次使用servlet开发链接前端和后端的操作,果不其然,遇到了诸多问题,而遇到最多的就是运行项目打开页面时出现404NOT FOUND的情况。因为这个问题我也是鼓捣了好久,上网查了许多资料才最终解决&#xf…...

SCRM私域流量管理工具助力企业微信电商转型升级

内容概要 在当今数字化时代,SCRM(社交客户关系管理)私域流量管理工具正逐渐成为企业转型的重要助力。尤其是在电商领域,企业微信的兴起为许多公司打开了新的销售渠道,通过SCRM系统的高效整合,企业能够更加…...

三相异步电动机为什么能够旋转?

三相异步电动机,作为一种广泛应用于工业、农业及其他领域的电动机,其工作原理的理解对于工程技术人员以及相关从业者来说至关重要。 一、三相异步电动机的基本结构 三相异步电动机主要由定子、转子和机壳组成。定子是电动机的静止部分,包含…...

JavaSec-RCE

简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性&#xff0c…...

synchronized 学习

学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言: 类加载器 1. …...

DBLP数据库是什么?

DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...

JDK 17 序列化是怎么回事

如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践

01技术背景与业务挑战 某短视频点播企业深耕国内用户市场,但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大,传统架构已较难满足当前企业发展的需求,企业面临着三重挑战: ① 业务:国内用户访问海外服…...