20. 内置模块

news/2024/10/21 18:16:16

一、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))

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

多校A层冲刺NOIP2024模拟赛10

因为有好多人没有好好打,所以我认为我垫底了。 赛时rank 2,T1 0pts,T2 100pts,T3 0pts,T4 40pts,accoder上同分,rank 9。 T1 因为没输出挂了5pts,T4 爆搜挂了5pts,乐。 update:T3没有启发式合并被卡成rank 4了 神:wang5是下一个zh0ukangyang 岛屿 唐氏的推柿子题。 …

13、Linux网络管理

网络基本概念 物理地址/逻辑地址物理地址:硬件地址,如MAC地址。 逻辑地址:软件配置地址,如IP地址。网卡作用:连接计算机和网络的硬件设备。MAC地址 (Media Access Control)定义:媒体访问控制地址,唯一标识网络设备的硬件地址。IP地址 (Internet Protocol Address)格式示…

CSS速刷 - CSS动画

作用:引起注意、愉悦感、反馈、掩饰(加载过程)transition动画 补间动画,中间过程可以计算出来。transition: width 1s:意味动画属性是width,动画时间是1秒。delay: 动画延迟几秒再开始 transition-timing-function 缓动函数:可以自己定制。关键帧动画 animationanimation…

五款实用报表工具推荐:从山海鲸到 JasperReports,哪个更适合你?

概述 在现代数据驱动的商业环境中,选择一款合适的报表工具对于企业的决策制定和数据管理至关重要。本文将为您介绍五款各具特色的免费或开源报表工具,包括国内的山海鲸报表、开源的 Superset、云端友好的 Looker Studio 以及企业级的 Zoho Analytics 和 JasperReports。本文将…

数据库运维实操优质文章文档分享(含Oracle、MySQL等) | 2024年9月刊

本文为大家整理了墨天轮数据社区2024年9月发布的优质技术文章/文档,主题涵盖Oracle、MySQL、PostgreSQL等主流数据库系统以及国产数据库的技术实操,欢迎参考。本文为大家整理了墨天轮数据社区2024年9月发布的优质技术文章/文档,主题涵盖Oracle、MySQL、PostgreSQL等主流数据…

物理理机中没有VMNet1和VMNet8虚拟网卡,网络不通

主机ping不通虚拟机网络控制面板——网络连接——网络适配器 VMware Network Adapter VMnet1 VMware Network Adapter VMnet8 如果没有这两个虚拟网卡,虚拟机的网络会出现问题 # 解决办法-恢复虚拟网卡默认设置 1、下载并打开ccleaner,ccleaner官网:CCleaner Makes Your Com…

Linux_进程理解、状态与优先级(详细版)

1.进程的概念 课本概念:程序的一个执行实例,正在执行的程序等。 内核观点:担当分配系统资源(CPU时间,内存)的实体。 其实:进程=内核的相关管理数据结构(task_struct、页表等)+程序的代码和数据task_struct:是描述进程的结构体,是Linux内核的一种数据结构,它会被装载…

12、用户和权限管理

用户组与用户管理 用户组(Group) 用户组用于方便权限分配。 常见部门组:北京核心 研究院-教研中心-北京教学部 研究院-研发中心-长沙研发 研究院-售后VIP服务中心 研究院-教研中心-长沙教学部组ID(GID)分类:root用户组:GID=0 程序用户组(系统用户组):1-999 (CentOS7)…