首页 > 其他分享 >20. 内置模块

20. 内置模块

时间:2024-10-21 18:11:27浏览次数:1  
标签:内置 20 random datetime json result 模块 print data

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

result = 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 hashlib

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

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

info = {"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 date

data_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 date

data_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 time

t1 = time.time()
print(t1)

time.sleep(1)

t2 = time.time()
print(t2-t1)
import datetime

day1 = 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 datetime

text = "1986-04-01"

date = datetime.strptime(text,"%Y-%m-%d")
print(date)
print(type(date))

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

from datetime import datetime

date = datetime.now()

str = date.strftime("%Y-%m-%d")
print(str)
print(type(str))

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

import time
from datetime import datetime

t1 = time.time()
date = datetime.fromtimestamp(t1)
print(date)
print(type(date))

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

from datetime import datetime

date = datetime.now()
t1 = date.timestamp()
print(t1)
print(type(t1))

标签:内置,20,random,datetime,json,result,模块,print,data
From: https://www.cnblogs.com/FlurryHeart/p/18489990

相关文章

  • 【2024-10-19】连岳摘抄
    23:59心灵开朗的人,面孔也是开朗的。                                                 ——席勒一个人,总有他的职责,把职责划分清楚,有时候烦恼也就消失了。所以孔子说,......
  • 多校A层冲刺NOIP2024模拟赛10
    因为有好多人没有好好打,所以我认为我垫底了。赛时rank2,T10pts,T2100pts,T30pts,T440pts,accoder上同分,rank9。T1因为没输出挂了5pts,T4爆搜挂了5pts,乐。update:T3没有启发式合并被卡成rank4了神:wang5是下一个zh0ukangyang岛屿唐氏的推柿子题。发现只有两种链,同色相连和......
  • 【2024-10-18】安排二宝
    20:00前途很远,也很暗,然而不要怕。不怕的人的面前才有路。                                                 ——XX如果我哪天写日记特别困难,需要埋头去寻找这一天内有......
  • 20222320 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    目录目录目录0.认识工具Veil1.实验目标2.实验内容3.实验过程(1)使用msf编码器,使用msfvenom生成如jar之类的其他文件(2)使用veil加壳工具加壳(3)使用C+shellcode编程(4)通过组合应用各种技术实现恶意代码免杀(5)用另一电脑实测,在杀软开启的情况下,可运行并回连成功4.问题及解决方案5.学习感......
  • 2024年CRM系统全景:领先品牌的深度解析与企业选择指南
    在SaaS赛道中,CRM系统以其与交易的紧密联系和迅猛的发展势头,成为核心的竞争领域。根据艾媒咨询的最新数据,2021年中国CRM市场规模达到156亿元,同比增长16.5%。随着市场渗透率的提高以及社交化、智能化CRM解决方案的不断涌现,行业增长势头强劲。预计从2023年起,市场将以大约10%的年增长......
  • 数据库运维实操优质文章文档分享(含Oracle、MySQL等) | 2024年9月刊
    本文为大家整理了墨天轮数据社区2024年9月发布的优质技术文章/文档,主题涵盖Oracle、MySQL、PostgreSQL等主流数据库系统以及国产数据库的技术实操,从基础的安装配置到复杂的故障排查,再到性能优化的实用技巧及常用脚本等,分享给大家:Oracle优质技术文章概念梳理&安装配置Oracle授......
  • 2024/10/21
    CF213ETwoPermutations考虑枚举\(x\),我们每次就只考虑值在\([1+x,n+x]\)的数单独拿出来,看他们是否与\(a_i+x\)相同即可。具体实现时,我们可以通过一棵平衡树来快速插入和删除一个数,并用Hash来维护序列信息。CF961Fk-substrings串的中心不会改变,所以答案总的改变量不......
  • 2024/10/21日工作总结
    实现jdbc的MySQL数据库连接;实现过程:在测试代码中导入数据库驱动jar包(mysql-connector-j-9.1.0.jar);注册驱动:"com.mysql.cj.jdbc.Driver";获取连接:"jdbc:mysql://localhost:3306/test",传入本地用户名称和密码;定义sql执行代码:更改数据库表格中的数据(updatetestsetmoney=100......
  • EESE 2024国际学术会议二轮征稿启动,优质稿件持续收录中
    第三届环境工程与与可持续能源国际会议(EESE2024)将于2024年12月在长沙召开,邀请多位顶尖学者分享研究成果。会议聚焦环境工程与可持续能源,涵盖多个领域,旨在搭建交流平台,促进产学研合作。投稿、参会形式多样,欢迎国内外学者参与。第三届环境工程与可持续能源国际会议The3rdIn......
  • springboot+vue保费征缴管理模块设计与实现【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着社会经济的快速发展和人民生活水平的不断提高,保险已成为现代社会中不可或缺的风险管理工具。保费征缴作为保险业务中的关键环节,直接关系到保险公司的运营效率和参保人的权益保障。然而,传统的保费征缴方式往往存在流程繁琐、信息不......