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

时间类型数据处理:基于Python的datetime库和pandas库

一、datetime库常用方法

日期的数据类型主要有两种:一是包含时间的datetime类型,二是不包含时间的date类型。这里的时间指具体的时、分、秒、甚至毫秒。

1、自定义日期、时间、获取本地时间、获取本地日期、获取年份、月份、月号、小时、分钟、秒、星期几

获取日期和时间的不同部分:

  • 获取年份:datetime.year
  • 获取月份:datetime.month
  • 获取月号:datetime.day
  • 获取小时:datetime.hour
  • 获取分钟:datetime.minute
  • 获取秒:datetime.second
  • 获取微妙:datetime.microsecond
  • 获取星期几,返回 0(周一)到 6(周日):datetime.weekday()
from datetime import datetime, date# 自定义日期,形如 2022-02-20
date(2022, 2, 20)# 自定义日期和时间,形如2025-01-22 12:00:00
dt = datetime(2025, 1, 22, 12, 00, 00)# 获取本地日期, 形如 2025-01-23
date.today()# 获取本地日期和时间,形如 2025-01-23 23:36:15.461326
dt = datetime.now()
dt = datetime.today()  # 与datetime.now()相同# 获取年份
dt.year# 获取月份
dt.month# 获取月号
dt.day# 获取小时
dt.hour# 获取分钟
dt.minute# 获取秒
dt.second# 获取星期几
dt.weekday()   # 返回0~6,表示周一到周日

2、日期的加减(包含时间或不包含时间):需要用到一个数据类型,timedelta(时间增量),表示时间间隔或者时间差,用于执行日期和时间的加减操作。

datetime类型时间的加减操作:

# 日期和时间(即datetime类型)的加减操作演示
from datetime import datetime, timedelta# 创建当前时间,datetime类型
now = datetime.now()# timedelta(days, weeks, hours, minutes, seconds): 创建一个timedelta对象,表示时间间隔
td = timedelta(days=5)# 计算5天后的时间
future = now + td    # 返回的是datetime类型# 计算日期差值
t = now - future   # 注意的是,两个datetime格式只能相减,但相减返回值类型是timedelta类型
print("Difference:", t)   # 输出 "-5 days, 0:00:00",即相差的天数# timedelta类型可以通过timedelta.days、timedelta.seconds等获取特定的值
print("Days difference:", t.days)   # 获取t的天数,输出-5
# 其他可用属性
print("Seconds:", t.seconds)   # 获取t的秒数,输出0

date类型的日期加减操作: 

# 日期(即date类型)的加减操作演示
from datetime import date, timedelta# 创建一个日期对象
today = date.today()
print("Today:", today)   # 输出 Today: 2025-01-23# 创建一个timedelta对象,表示时间间隔
td = timedelta(days=5)# 计算5天后的日期
future_date = today + td
print("Future Date:", future_date)   # 输出 Future Date: 2025-01-28# 计算5天前的日期
past_date = today - td
print("Past Date:", past_date)    # 输出 Past Date: 2025-01-18# 两个date类型也是只能相减,不能相加,相减得到一个timedelta类型时间增量
print(future_date - past_date)   # 输出 10 days, 0:00:00

3、字符串转日期时间、日期时间格式化输出

常见的格式符号:

  • %Y:四位数的年份(例如 2023)
  • %m:两位数的月份(例如 01 至 12)
  • %d:两位数的日期(例如 01 至 31)
  • %H:小时(24小时制,00 至 23)
  • %M:分钟(00 至 59)
  • %S:秒(00 至 59)
  • %f:微秒(000000 至 999999)
  • %a:简短的星期几(例如 Mon)
  • %A:完整的星期几(例如 Monday)
from datetime import datetime# 将字符串转日期时间
time = '2025-01-22 12:45:30'
dt = datetime.strptime(time, '%Y-%m-%d %H:%M:%S')
print(type(dt))  # <class 'datetime.datetime'>
print(dt)    # 输出 2025-01-22 12:45:30# 将日期时间转字符串
time_str = dt.strftime('%Y-%m-%d %H:%M:%S %A')
print(type(time_str))    # <class 'str'>
print(time_str)  # 2025-01-22 12:45:30 Wednesday

二、pands库中常用于时间分析的方法

1、使用pd.to_datetime()转换时间列

import pandas as pd# 创建包含日期字符串的 DataFrame
data = {'date': ['2023-01-01', '2023-01-02', '2023-01-03'],'value': [10, 15, 20]}df = pd.DataFrame(data)# 将 'date' 字符串列转换为 datetime 类型
df['date'] = pd.to_datetime(df['date'])print(df)
# 输出:
#      date       value
# 0 2023-01-01     10
# 1 2023-01-02     15
# 2 2023-01-03     20

2、使用pd.date_range()创建时间序列

date_range()常用参数说明:

  • start:必需参数,指定日期范围的开始日期(字符串或datetime对象)
  • end:可选参数,指定日期范围的结束日期(字符串或datetime对象)
  • periods:可选参数,指定生成的日期数量,而不是通过结束日期来确定结束
  • freq:可选参数,指定日期的频率(默认频率是'D',即每天),如天、小时、月等。

常见的频率表示法有:

  • 'D':每天
  • 'B':工作日(周一到周五)
  • 'h':每小时
  • 'T''min':每分钟
  • 's':每秒
  • 'MS':每月(每月初)
  • 'ME':每月(每月末)
  • 'QS':每季度(每季度初)
  • 'QE':每季度(每季度末)
  • 'YS':每年(每年末)
  • 'YE':每年(每年末)
  • 'W':每周(每周的周日)

示例:

import pandas as pd# 生成日期范围,使用了end参数就不能用periods参数
dates = pd.date_range('2023-01-01', end='2023-01-03', freq='D')
print(dates)   # 输出 DatetimeIndex(['2023-01-01', '2023-01-02', '2023-01-03'])# 生成日期范围,使用了periods参数就不能用end参数
dates = pd.date_range('2023-01-01', periods=3, freq='ME')
print(dates)   # 输出 DatetimeIndex(['2023-01-31', '2023-02-28', '2023-03-31'])

3、使用df.set_index()和df.resample()进行重采样

假设你有一个包含日期和数值的 DataFrame,现在你想按月重采样并使用聚合函数计算每月的平均值:

# 创建包含日期和数值的 DataFrame
data = {'date': ['2023-01-01', '2023-01-15', '2023-02-01', '2023-02-15'],'value': [10, 20, 30, 40]}df = pd.DataFrame(data)# 将 'date' 列转换为 datetime 类型并设置为索引
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)# 按月重采样并计算平均值
df_resampled = df.resample('ME').mean()print(df_resampled)# 输出:
#             value
# date             
# 2023-01-31   15.0     表示一月份的平均值
# 2023-02-28   35.0     表示二月份的平均值

4、使用df.rolling()计算移动平均

假设你有一个时间序列数据,你想计算3天的移动平均:

# 创建一个时间序列数据
data = {'date': pd.date_range('2023-01-01', periods=6, freq='D'),'value': [10, 20, 30, 40, 50, 60]}df = pd.DataFrame(data)
df.set_index('date', inplace=True)# 计算3天移动平均
df['rolling_mean'] = df['value'].rolling(window=3).mean()print(df)# 输出:
#             value      rolling_mean
# date                           
# 2023-01-01     10           NaN
# 2023-01-02     20           NaN
# 2023-01-03     30          20.0
# 2023-01-04     40          30.0
# 2023-01-05     50          40.0
# 2023-01-06     60          50.0

5、使用df.diff()计算差值

假设你想计算每一天与前一天的差值(即变化量):

# 创建一个时间序列数据
data = {'date': pd.date_range('2023-01-01', periods=6, freq='D'),'value': [10, 20, 30, 40, 50, 60]}df = pd.DataFrame(data)
df.set_index('date', inplace=True)# 计算每日变化量
df['daily_change'] = df['value'].diff()print(df)# 输出:
#               value     daily_change
# date                           
# 2023-01-01     10           NaN
# 2023-01-02     20          10.0
# 2023-01-03     30          10.0
# 2023-01-04     40          10.0
# 2023-01-05     50          10.0
# 2023-01-06     60          10.0

6、使用 df.between_time() 筛选时间范围(无法筛选特定日期范围数据)

假设你有一个包含日期时间的 DataFrame,现在你想筛选某一特定时间范围内的数据:

# 创建包含日期时间数据的 DataFrame
data = {'datetime': pd.date_range('2023-01-01 08:00', periods=6, freq='h'),'value': [10, 20, 30, 40, 50, 60]}df = pd.DataFrame(data)
df.set_index('datetime', inplace=True)# 筛选 09:00 到 17:00 之间的数据
df_filtered = df.between_time('09:00', '17:00')print(df_filtered)
# 输出:
#                        value
# datetime                  
# 2023-01-01 09:00:00     20
# 2023-01-01 10:00:00     30
# 2023-01-01 11:00:00     40
# 2023-01-01 12:00:00     50
# 2023-01-01 13:00:00     60

7、使用 .iloc 筛选特定日期范围内的数据

# 创建包含日期时间数据的 DataFrame
data = {'datetime': pd.date_range('2023-01-01 08:00', periods=5, freq='ME'),'value': [10, 20, 30, 40, 50]}df = pd.DataFrame(data)
df.set_index('datetime', inplace=True)# 筛选特定日期范围的数据
start_date = '2023-01-01'
end_date = '2023-10-02'df_filtered = df.loc[start_date:end_date]print(df_filtered)
# 输出:
#                        value
# datetime                  
# 2023-01-31 08:00:00     10
# 2023-02-28 08:00:00     20
# 2023-03-31 08:00:00     30
# 2023-04-30 08:00:00     40
# 2023-05-31 08:00:00     50

# 文章如有错误,欢迎大家指正,我们下期文章见。

相关文章:

时间类型数据处理:基于Python的datetime库和pandas库

一、datetime库常用方法 日期的数据类型主要有两种&#xff1a;一是包含时间的datetime类型&#xff0c;二是不包含时间的date类型。这里的时间指具体的时、分、秒、甚至毫秒。 1、自定义日期、时间、获取本地时间、获取本地日期、获取年份、月份、月号、小时、分钟、秒、星期…...

CPU 缓存基础知识

并发编程首先需要简单了解下现代CPU相关知识。通过一些简单的图&#xff0c;简单的代码&#xff0c;来认识CPU以及一些常见的问题。 目录 CPU存储与缓存的引入常见的三级缓存结构缓存一致性协议MESI协议缓存行 cache line 通过代码实例认识缓存行的重要性 CPU指令的乱序执行通过…...

vue3 中如何监听 props 中的值的变化

在 Vue 3 中&#xff0c;你可以使用 watch 函数来监听组件的 props 值的变化。watch 函数允许你观察一个或多个响应式数据源&#xff0c;并在这些数据源发生变化时执行回调函数。 以下是一个示例&#xff0c;展示了如何在 Vue 3 中使用 watch 来监听 props 中的值的变化&#…...

煤矿场景下矿工行为检测数据集VOC+YOLO格式24709张8类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;24709 标注数量(xml文件个数)&#xff1a;24709 标注数量(txt文件个数)&#xff1a;2470…...

Git处理冲突详解

文章目录 Git处理冲突详解一、引言二、冲突产生的原因三、解决冲突的步骤1. 手动解决冲突1.1 查看冲突文件1.2 编辑冲突文件1.3 提交解决冲突 2. 使用合并工具解决冲突 四、使用示例五、总结 Git处理冲突详解 一、引言 在团队协作开发中&#xff0c;Git冲突是不可避免的。当多…...

Jetson Orin Nano Super之jetson-fpv开源代码下载

Jetson Orin Nano Super之jetson-fpv开源代码下载 1. 源由2. 方法2.1 优化配置方案一&#xff1a;增加缓冲方案二&#xff1a;降低并发数方案三&#xff1a;临时禁用深度克隆 2.2 路径更换方案一&#xff1a;设置代理方案二&#xff1a;替换git协议方案三&#xff1a;替换https…...

gitlab使用多数据库

1. 说明 默认情况下&#xff0c;GitLab 使用一个单一的应用数据库&#xff0c;称为主数据库。为了扩展 GitLab&#xff0c;您可以将 GitLab 配置为使用多个应用数据库。 设置多个数据库后&#xff0c;GitLab 将使用第二个应用数据库用于 CI/CD 功能&#xff0c;称为 CI 数据库…...

【Redis】事务

前言&#xff1a; 对比MySQL事务:【MySQL篇】事务的认识以及四大特性-CSDN博客 弱化的原子性: redis 没有 "回滚机制". 只能做到这些操作 "批量执行". 不能做到 "一个失败就恢复到初始状态". 不保证一致性: 不涉及 "约束". 也没有…...

在vue3中使用datav完整引入时卡在加载页面的解决方法

文件修改 文件&#xff1a;node_modules/dataview\datav-vue3/package.json // "module": "./es/index.js","module": "./es/index.mjs", // 修改后使用完整引入&#xff0c;需要为datav配置文件添加相应方法 文件&#xff1a;node…...

WPA_cli P2P命令详解及使用

目录 通用命令 status scan scan_results add_network set_network enable_network reconfigure save_config quit P2P 相关命令 p2p_find p2p_peers p2p_connect [method] p2p_group_add [ssid=] [freq=] [ht40] [persistent] p2p_remove_client p2p_di…...

Kubernetes v1.28.0安装dashboard v2.6.1(k8s图形化操作界面)

准备工作 Kubernetes v1.28.0搭建教程请参考&#xff1a;Kubernetes v1.28.0集群快速搭建教程-CSDN博客 查看当前集群nodes都是ready状态 查看当前pods都是running状态 下载并修改配置文件 下载 recommended.yaml &#xff0c;下载好之后&#xff0c;进入文件编辑 下载地址…...

性能测试监控与诊断

我们依据一个HTTP请求处理的过程&#xff0c;采用主流的J2EE技术栈&#xff0c;如下图所示 1>用户的请求通过网卡传送到服务器&#xff08;中断信号&#xff09;&#xff0c;用户与服务器简历TCP/IP链接。也就是产说的TCP三次握手。既然是链接&#xff0c;就有限制&#xff…...

窥探QCC518x-308x系列与手机之间的蓝牙HCI记录与分析 - 耳机篇

上一篇是介绍如何窥探手机端Bluetooth的HCI log, 本次介绍是如何窥探Bluetooth的HCI log-耳机篇. 这次跟QCC518x/QCC308x测试的手机是Samsung S23 Ultra. QCC518x/QCC308x透过HCI界面取得Log教学. 步骤1: 开启QMDE -> 选择ADK r1102 QCC3083 Headset workspace.步骤2: 点…...

Numpy基础02(Numpy对数组的基本操作)

Numpy的基本操作 2.3.1 ndarray索引操作 一维数组&#xff1a;同一维列表大致相同 n np.array([1, 2, 3, 4, 5]) n[0], n[-1] #(1, 5)多维数组 n np.random.randint(0, 10, size(3, 4, 5)) print(n) # 访问最后一个元素并改为66 n[2,3,-1] 66 print(n)# 最后一行元素并…...

WPS计算机二级•幻灯片的基础操作

听说这是目录哦 PPT的正确制作步骤&#x1f6e3;️认识PPT界面布局&#x1f3dc;️PPT基础操作 快捷键&#x1f3de;️制作PPT时 常用的快捷技巧&#x1f3d9;️快速替换PPT的 文本字体&#x1f303;快速替换PPT 指定文本内容&#x1f305;能量站&#x1f61a; PPT的正确制作步…...

蓝桥杯准备 【入门1】顺序结构

P5705 【深基2.例7】数字反转 题目描述 输入一个不小于 100100 且小于 10001000&#xff0c;同时包括小数点后一位的一个浮点数&#xff0c;例如 123.4123.4 &#xff0c;要求把这个数字翻转过来&#xff0c;变成 4.3214.321 并输出。 解题思路&#xff1a;使用字符串比较简单…...

Java学习笔记(二十四)

1 策略模式 1.1 策略模式概述 策略模式&#xff08;Strategy Pattern&#xff09; 是一种行为设计模式&#xff0c;定义了一系列算法&#xff0c;并将它们封装成独立的类&#xff0c;使它们可以互相替换而不会影响使用它们的客户端代码。 策略模式的核心思想是将行为与环境解…...

React进阶之高阶组件HOC、react hooks、自定义hooks

React高级 高阶组件 HOC属性代理反向继承属性代理和反向继承的区别实例实例一实例二 HooksHooks APIuseState&#xff1a;useEffect&#xff1a;useLayoutEffect&#xff1a;useRef&#xff1a;useContext&#xff1a;useReducer:useMemouseCallback 自定义Hooks 拓展&#xff…...

在亚马逊云科技上高效蒸馏低成本、高精度的Llama 3.1 405B模型(上篇)

在2024年的亚马逊云科技re:Invent全球云计算春晚里&#xff0c;亚马逊云科技CEO - Matt Garman介绍了亚马逊云科技的AI模型托管平台Amazon Bedrock上的模型蒸馏服务Model Distillation&#xff0c;令小李哥印象十分深刻。该功能可自动化地为特定场景的知识创建一个蒸馏模型。它…...

算法基础 -- 红黑树初识

红黑树初识 红黑树&#xff08;Red-Black Tree&#xff09;是一种自平衡的二叉搜索树&#xff0c;它通过对每个节点增加颜色属性&#xff0c;以及在插入和删除节点时使用特定规则调整树结构来保持平衡。红黑树的特点是&#xff0c;在任何情况下&#xff0c;其树高都可以保持在…...

TTL 在 Redis 缓存中的作用

Redis TTL&#xff08;Time To Live&#xff09;与缓存的关系 TTL&#xff08;Time To Live&#xff0c;生存时间&#xff09;是 Redis 提供的一种自动过期机制&#xff0c;用于控制键值对的存活时间。当 TTL 到期后&#xff0c;Redis 会自动删除该键&#xff0c;避免长期占用…...

利用 SAM2 模型探测卫星图像中的农田边界

将 Segment Anything Model Version 2 应用于卫星图像以检测和导出农业地区田地边界的分步教程 &#x1f31f; 简介 手动绘制田地边界是最耗时的任务之一&#xff0c;其准确性取决于绘制者的表现。然而&#xff0c;精确的边界检测在很多领域都有应用。例如&#xff0c;假设您…...

Java春招面试指南前言

在当今竞争激烈的就业市场中&#xff0c;对于即将踏入职场的Java开发者而言&#xff0c;春招是一次宝贵的机会。本博客专栏旨在为大家提供一份全面且实用的Java春招面试指南&#xff0c;助力大家顺利通过面试&#xff0c;开启职业生涯的新篇章。 无论你是初出茅庐的应届生&…...

安宝特方案 | 智能培训:安宝特AR如何提升企业技能培训的效率与互动性

随着企业不断推进数字化转型&#xff0c;传统培训方式已无法满足现代企业对高效、灵活培训的需求。尤其在技术更新频繁、工艺流程复杂、员工流动性大的环境中&#xff0c;传统培训模式的局限性愈加明显。为了提升培训质量、降低培训成本&#xff0c;并帮助员工迅速掌握新技能&a…...

Python网络自动化运维---用户交互模块

文章目录 目录 文章目录 前言 实验环境准备 一.input函数 代码分段解析 二.getpass模块 前言 在前面的SSH模块章节中&#xff0c;我们都是将提供SSH服务的设备的账户/密码直接写入到python代码中&#xff0c;这样很容易导致账户/密码泄露&#xff0c;而使用Python中的用户交…...

最新-CentOS 7 基于1 Panel面板安装 JumpServer 堡垒机

CentOS 7 基于1 Panel面板安装 JumpServer 堡垒机 一、前言二、设备要求三、环境要求四、安装4.1 环境安装4.2 JumpServer安装4.3 访问JumpServerWeb端&#xff0c;进行登录 五、登录Web控制台 一、前言 JumpServer是广受欢迎的开源堡垒机。运维必备神器&#xff01;JumpServe…...

【前端】Hexo 建站指南

文章目录 前言生成站点本地测试部署云端参考 前言 更好的阅读体验&#xff1a;https://blog.dwj601.cn/FrontEnd/Hexo/build-your-own-website-with-hexo/ 笔记记多了&#xff0c;想要分享给同学们一起交流进步&#xff0c;该怎么办&#xff1f;想要搭建一个属于自己的知识库…...

(Java版本)基于JAVA的网络通讯系统设计与实现-毕业设计

源码 论文 下载地址&#xff1a; ​​​​c​​​​​​c基于JAVA的网络通讯系统设计与实现(源码系统论文&#xff09;https://download.csdn.net/download/weixin_39682092/90299782https://download.csdn.net/download/weixin_39682092/90299782 第1章 绪论 1.1 课题选择的…...

WPF基础 | 初探 WPF:理解其核心架构与开发环境搭建

WPF基础 | 初探 WPF&#xff1a;理解其核心架构与开发环境搭建 一、前言二、WPF 核心架构2.1 核心组件2.2 布局系统2.3 数据绑定机制2.4 事件处理机制 三、WPF 开发环境搭建3.1 安装 Visual Studio3.2 创建第一个 WPF 应用程序 结束语优质源码分享 WPF基础 | 初探 WPF&#xff…...

插入排序

直接插入排序 直接插⼊排序是⼀种简单的插⼊排序法&#xff0c;其基本思想是&#xff1a;把待排序的记录按其关键码值的⼤⼩逐个插 ⼊到⼀个已经排好序的有序序列中&#xff0c;直到所有的记录插⼊完为⽌&#xff0c;得到⼀个新的有序序列。 例如&#xff1a;我们玩扑克牌时&…...

2025最新 Docker 国内可用镜像源仓库地址(01月02日更新)

1. 添加docker镜像地址 使用编辑器打开配置文件 /etc/docker/daemon.json&#xff08;如果没有该文件&#xff0c;可以新建一个&#xff09; 2. vi daemon.json, 写入以下内容 {"builder": {"gc": {"defaultKeepStorage": "20GB",&…...

Java 反射与动态代理:实践中的应用与陷阱

Java 反射与动态代理&#xff1a;实践中的应用与陷阱 在现代Java应用中&#xff0c;反射和动态代理提供了强大的灵活性&#xff0c;但它们也带来了性能和复杂度上的挑战。本文将深入探讨这些技术在实际项目中的应用&#xff0c;分析它们可能导致的陷阱&#xff0c;并提供详细的…...

tp8读取mysql导出excel

环境&#xff1a;php8.3, thinkphp8.0, mysql8.0 use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Style\Alignment; use think\facade\Db; use think\response\Json;class Index {public function index…...

【自己动手开发Webpack插件:开启前端构建工具的个性化定制之旅】

在前端开发的世界里&#xff0c;Webpack无疑是构建工具中的“明星”。它强大的功能可以帮助我们高效地打包和管理前端资源。然而&#xff0c;有时候默认的Webpack功能可能无法完全满足我们的特定需求&#xff0c;这时候就需要自定义Webpack插件来大展身手啦&#xff01;今天&am…...

vue2使用flv.js在浏览器打开flv格式视频

组件地址&#xff1a;GitHub - bilibili/flv.js: HTML5 FLV Player flv.js 仅支持 H.264 和 AAC/MP3 编码的 FLV 文件。如果视频文件使用了其他编码格式就打不开。 flv.vue <template><div><el-dialog :visible.sync"innerVisibleFlv" :close-on-pre…...

Spring中的事务管理器TransactionManager

目录 一、主要功能 二、使用场景说明 在Spring框架中&#xff0c;事务管理器&#xff08;TransactionManager&#xff09;是用于管理事务的重要接口。它提供了对事务的全面控制&#xff0c;包括事务的状态管理和资源管理等功能。本文将详细介绍TransactionManager的主要功能、…...

MacOS安装Docker battery-historian

文章目录 需求安装battery-historian实测配置国内源相关文章 需求 分析Android电池耗电情况、唤醒、doze状态等都要用battery-historian&#xff0c; 在 MacOS 上安装 battery-historian&#xff0c;可以使用 Docker 进行安装runcare/battery-historian:latest。装完不需要做任…...

Charles 4.6.7 浏览器网络调试指南:HTTPS抓包(三)

概述 在现代互联网应用中&#xff0c;网络请求和响应是服务交互的核心。对于开发者和测试人员来说&#xff0c;能够准确捕获并分析这些请求&#xff0c;是保证系统稳定性和性能的关键。Charles作为一个强大的网络调试工具&#xff0c;不仅可以捕获普通的HTTP请求&#xff0c;还…...

c++解决常见内存泄漏问题——智能指针的使用及其原理

目录 前言&#xff1a; 1. 智能指针的使用及其原理 1. 1 智能指针的使用场景分析 1.2 RAII和智能指针的设计思路 1.3 C标准库智能指针的使用 1.3 1 auto_ptr 1.3 2 unique_ptr 1.3 3 shared_ptr(重&#xff09; 1.3 4 weak_ptr 1.3 5 模拟实现删除器 2.智能指针的原…...

算法竞赛之离散化技巧 python

目录 离散化实战演练总结 离散化 不改变数据相对大小的情况下&#xff0c;对数据进行相应的下标映射&#xff0c;即离散化。 例如&#xff1a;【100,200,300,400,500】&#xff0c;离散化后为【1,2,3,4,5】 什么时候可以离散化&#xff1a;当数据只与它们之间的相对大小有关&a…...

1.CSS的三大特性

css有三个非常重要的三个特性&#xff1a;层叠性、继承性、优先级 1.1 层叠性 想通选择器给设置想听的样式&#xff0c;此时一个样式就会覆盖&#xff08;层叠&#xff09;另一个冲突的样式。层叠性主要是解决样式冲突的问题。 <!DOCTYPE html> <html lang"en&…...

由于请求的竞态问题,前端仔喜提了一个bug

在平常的开发过程中&#xff0c;你可能会遇到这样一个bug。 测试&#xff1a;我在测一个输入框搜索的功能时&#xff0c;告诉你通过输入框输入的内容&#xff0c;和最终通过输入内容搜索出来的结果对不上。 前端&#xff1a;我是通过调用后端接口拿到的数据&#xff0c;这明显…...

HTML `<head>` 元素详解

在 HTML 文档中&#xff0c;<head> 元素是一个非常重要的部分&#xff0c;它包含了文档的元数据&#xff08;metadata&#xff09;和其他与文档相关的信息。虽然 <head> 中的内容不会直接显示在网页上&#xff0c;但它对网页的行为、样式和搜索引擎优化&#xff08…...

基于RAG构建Text2SQL的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…...

GPT-4对话模型在客服中的应用与前景:开启智能客服新时代

GPT-4对话模型在客服中的应用与前景:开启智能客服新时代 随着人工智能技术的迅猛发展,基于深度学习的对话模型在各个领域中得到了广泛应用。其中,GPT-4对话模型在客服系统中的应用尤为引人注目。本文将探讨GPT-4在客服中的应用与未来发展前景,并结合具体代码示例进行说明。…...

我想通过python语言,学习数据结构和算法该如何入手?

学习数据结构和算法是编程中的重要基础&#xff0c;Python 是一个非常适合入门的语言。以下是学习数据结构和算法的步骤和建议&#xff1a; 1. 掌握 Python 基础 确保你对 Python 的基本语法、数据类型、控制结构&#xff08;如循环、条件语句&#xff09;、函数等有扎实的理…...

Java多线程的面试面试题及答案解析

什么是进程&#xff1f;什么是线程&#xff1f;有什么区别&#xff1f; 进程是系统资源分配的基本单位&#xff0c;拥有独立的地址空间。线程是 CPU 调度和分派的基本单位&#xff0c;是比进程更小的独立执行的单位&#xff0c;共享所在进程的内存空间等资源。一个进程可以包含…...

python flask中使用or查询和and查询,还有同时使用or、and的情况

在 Flask 中处理数据库查询时&#xff0c;通常会结合使用 ORM 工具&#xff0c;例如 SQLAlchemy。以下是 or 查询、and 查询以及两者同时使用的示例。 文章目录 基础准备1. 使用 or_ 查询2. 使用 and_ 查询3. 同时使用 or_ 和 and_4. 更加复杂的嵌套查询 基础准备 假设有一个…...

C# 解析视频流播放全解析

在多媒体技术日益发达的今天&#xff0c;视频流播放已经成为众多应用中不可或缺的功能。对于开发者而言&#xff0c;掌握如何使用编程语言来解析和播放视频流是一项重要的技能。本文将深入探讨如何使用 C# 来实现视频流的解析与播放。 一、视频流播放原理简介 视频流是将视频…...

关于为什么java中nextInt()和nextLine()不能混用 | nextInt()和nextInt()之类的可以一起用

键盘录入的区别&#xff1a; 第一套体系&#xff1a;遇到空格、制表符、回车都结束&#xff0c;并且都不接收 nextInt()、nextDouble()、next() 遇到空格、制表符、回车就结束&#xff0c;只接收其之前的数据&#xff0c;空格以及空格之后的数据都在缓冲区内&#xff0c;如果…...