操作教程|基于DataEase用RFM分析法分析零售交易数据
DataEase开源BI工具可以在店铺运营的数据分析及可视化方面提供非常大的帮助。同样,在用于客户评估的RFM(即Recency、Frequency和Monetary的简称)分析中,DataEase也可以发挥出积极的价值,通过数据可视化大屏的方式实时展示分析结果,让业务数据在没有损耗准确性和时效性的前提下,以更加直观易懂的方式呈现。
关于RFM分析法
RFM分析法是一种经典的客户价值评估模型,广泛应用于市场营销和客户关系管理领域。通过分析客户最近一次的消费时间(Recency)、消费频率(Frequency)以及消费金额(Monetary),RFM模型能够精准识别客户的价值和行为特征。这一方法在零售、新消费和电商行业尤为普遍和通用,可以帮助企业识别高价值客户、制定个性化营销策略、提升客户满意度和忠诚度,并且优化资源配置,从而显著提升整体销售业绩和市场竞争力。
RFM分析不仅为企业提供了科学的数据支持,还在客户关系管理中起到了关键的指导作用。其中,针对“R”、“F”和“M”这三个维度,可以根据如下标准来做出评估:
1.R(Recency):表示客户最近一次购买时间距离当前时间的间隔天数。时间越短,客户的活跃度越高,越有可能再次购买;
2.F(Frequency):表示客户在特定时间段内的购买次数。次数越多,说明客户与公司的互动越频繁,忠诚度越高;
3.M(Monetary):表示客户在特定时间段内的总消费金额。金额越高,客户的价值越大,越会成为公司重要的利润来源。
通过DataEase对数据进行RFM分析
本文为您介绍通过DataEase对数据开展RFM分析的方法,涵盖了数据收集、处理,到客户分群和策略制定的完整步骤。
一、数据收集
在进行具体的数据分析之前,首先需要采集、整理好待分析的客户交易数据,包括每笔交易的日期、交易金额和客户ID等字段。
以下是模拟的一份零售交易数据示例。
▲图1 模拟零售交易数据
将获得的数据导入数据库。此处我们将模拟生成的数据加载至Oracle数据库中,具体步骤如下:
1.通过SQL命令语句创建生成数据表。
CREATE TABLE transactions (transaction_id NUMBER PRIMARY KEY,customer_id NUMBER NOT NULL,product_id NUMBER NOT NULL,transaction_time TIMESTAMP NOT NULL,total_amount NUMBER(10, 2) NOT NULL
);
2.将待分析的数据导入至生成好的数据表“TRANSACTIONS”中。
▲图2 将数据导入数据库的数据表
二、数据处理与计算
本次我们将通过DataEase开源BI工具来进行RFM分析数据的大屏制作,以实现数据的直观展示与分析。
具体步骤如下:
1.在DataEase的“数据源配置”页面,选择连接对应的Oracle数据库。
▲图3 连接Oracle数据源
2.使用Oracle数据源中预先准备好的数据表“TRANSACTIONS”,创建数据集。
▲图4 数据集创建操作
3.从数据表“TRANSACTIONS”中拆分出具体的“R”、“F”、“M”三个维度,并根据它们各自的指示特征,对数据进行进一步的筛选和加工处理。
■ R:用当前时间减去最近交易时间,并将结果向上取整,获取上次消费间隔天数;
CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R
■ F:当月内的发生交易次数;
COUNT(1) AS F
■ M:当月内消费金额合计。
SUM(TOTAL_AMOUNT) AS M
在DataEase中,可以便利地通过“新建计算字段”功能来加工以上字段,实现数据的快速处理。
▲图5 DataEase的“新建计算字段”功能
4.按照客户ID来汇总数据,并对数据进行排序,取得可以用于RFM分析的数据集。
SELECTCUSTOMER_ID,CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R,COUNT(1) AS F,SUM(TOTAL_AMOUNT) AS M
FROMTRANSACTIONS
GROUP BYCUSTOMER_ID
ORDER BYCUSTOMER_ID
▲图6 用于RFM分析的数据集
三、数据标准划分
使用SQL语句,对待分析的数据进行进一步的处理,根据客户行为指标所在的数值区间分出计分等级。
SELECTMIN(t.R) 最小最近间隔天数,MAX(t.R) 最大最近间隔天数,MIN(t.F) 最小消费次数,MAX(t.F) 最大消费次数,MIN(t.M) 最小合计金额,MAX(t.M) 最大合计金额
FROM(SELECTCUSTOMER_ID,CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R,COUNT(1) AS F,SUM(TOTAL_AMOUNT) AS MFROMTRANSACTIONSGROUP BYCUSTOMER_IDORDER BYCUSTOMER_ID)t
▲图7 数据计分标准参考
此处我们使用均等分层的方式,将客户交易数据分出等级,作为顺序数据计分。
■ R:
5分:1-4天
4分:5-8天
3分:9-12天
2分:13-16天
1分:17天以上
■ F:
5分:20次以上
4分:16-20次
3分:11-15次
2分:6-10次
1分:1-5次
■ M:
5分:8001以上
4分:6001-8000元
3分:4001-6000元
2分:2001-4000元
1分:1-2000元
四、客户分群
根据已经确定的数据标准,使用SQL语句对数据进行如下分类。
1.为R、F、M数值分别分层计分,所得R、F、M数值对应的分数分别记录为计分字段“R_GRD”、“F_GRD”、“M_GRD”。
SELECTt.CUSTOMER_ID,t.R,CASEWHEN t.R BETWEEN 1 AND 4 THEN 5WHEN t.R BETWEEN 5 AND 8 THEN 4WHEN t.R BETWEEN 9 AND 12 THEN 3WHEN t.R BETWEEN 13 AND 16 THEN 2WHEN t.R > 16 THEN 1END R_Grd,t.F,CASEWHEN t.F BETWEEN 1 AND 5 THEN 1WHEN t.F BETWEEN 6 AND 10 THEN 2WHEN t.F BETWEEN 11 AND 15 THEN 3WHEN t.F BETWEEN 16 AND 20 THEN 4WHEN t.F > 20 THEN 5END F_Grd,t.M,CASEWHEN t.M BETWEEN 1 AND 2000 THEN 1WHEN t.M BETWEEN 2001 AND 4000 THEN 2WHEN t.M BETWEEN 4001 AND 6000 THEN 3WHEN t.M BETWEEN 6001 AND 8000 THEN 4WHEN t.M > 8000 THEN 5END M_Grd
FROM(SELECTCUSTOMER_ID,CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R,COUNT(1) AS F,SUM(TOTAL_AMOUNT) AS MFROMTRANSACTIONSGROUP BYCUSTOMER_IDORDER BYCUSTOMER_ID)t
▲图8 新增“GRD”计分字段
2.分别计算出“R_GRD”、“F_GRD”、“M_GRD”三个字段的平均值。
SELECTAVG(ag.R_Grd) R_avg,AVG(ag.F_Grd) F_avg,AVG(ag.M_Grd) M_avg
FROM(SELECTt.CUSTOMER_ID,t.R,CASEWHEN t.R BETWEEN 1 AND 4 THEN 5WHEN t.R BETWEEN 5 AND 8 THEN 4WHEN t.R BETWEEN 9 AND 12 THEN 3WHEN t.R BETWEEN 13 AND 16 THEN 2WHEN t.R > 16 THEN 1END R_Grd,t.F,CASEWHEN t.F BETWEEN 1 AND 5 THEN 1WHEN t.F BETWEEN 6 AND 10 THEN 2WHEN t.F BETWEEN 11 AND 15 THEN 3WHEN t.F BETWEEN 16 AND 20 THEN 4WHEN t.F > 20 THEN 5END F_Grd,t.M,CASEWHEN t.M BETWEEN 1 AND 2000 THEN 1WHEN t.M BETWEEN 2001 AND 4000 THEN 2WHEN t.M BETWEEN 4001 AND 6000 THEN 3WHEN t.M BETWEEN 6001 AND 8000 THEN 4WHEN t.M > 8000 THEN 5END M_GrdFROM(SELECTCUSTOMER_ID,CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R,COUNT(1) AS F,SUM(TOTAL_AMOUNT) AS MFROMTRANSACTIONSGROUP BYCUSTOMER_IDORDER BYCUSTOMER_ID)t)ag
▲图9 计算“GRD”字段平均值
3.将“R_GRD”、“F_GRD”、“M_GRD”分数与各自的字段平均值进行对比,得出对应的等级字段“R_RNK”、“F_RNK”、“M_RNK”。若“GRD”分数高于平均值,则记录“RNK”为“高”,反之则记录“RNK”为“低”。
SELECTt.CUSTOMER_ID,t.R,CASEWHEN t.R BETWEEN 1 AND 4 THEN 5WHEN t.R BETWEEN 5 AND 8 THEN 4WHEN t.R BETWEEN 9 AND 12 THEN 3WHEN t.R BETWEEN 13 AND 16 THEN 2WHEN t.R > 16 THEN 1END R_Grd,CASEWHEN (CASEWHEN t.R BETWEEN 1 AND 4 THEN 5WHEN t.R BETWEEN 5 AND 8 THEN 4WHEN t.R BETWEEN 9 AND 12 THEN 3WHEN t.R BETWEEN 13 AND 16 THEN 2WHEN t.R > 16 THEN 1END) > 3.441 THEN '高'ELSE '低'END R_Rnk,t.F,CASEWHEN t.F BETWEEN 1 AND 5 THEN 1WHEN t.F BETWEEN 6 AND 10 THEN 2WHEN t.F BETWEEN 11 AND 15 THEN 3WHEN t.F BETWEEN 16 AND 20 THEN 4WHEN t.F > 20 THEN 5END F_Grd,CASEWHEN (CASEWHEN t.F BETWEEN 1 AND 5 THEN 1WHEN t.F BETWEEN 6 AND 10 THEN 2WHEN t.F BETWEEN 11 AND 15 THEN 3WHEN t.F BETWEEN 16 AND 20 THEN 4WHEN t.F > 20 THEN 5END) > 2.751 THEN '高'ELSE '低'END F_Rnk,t.M,CASEWHEN t.M BETWEEN 1 AND 2000 THEN 1WHEN t.M BETWEEN 2001 AND 4000 THEN 2WHEN t.M BETWEEN 4001 AND 6000 THEN 3WHEN t.M BETWEEN 6001 AND 8000 THEN 4WHEN t.M > 8000 THEN 5END M_Grd,CASEWHEN (CASEWHEN t.M BETWEEN 1 AND 2000 THEN 1WHEN t.M BETWEEN 2001 AND 4000 THEN 2WHEN t.M BETWEEN 4001 AND 6000 THEN 3WHEN t.M BETWEEN 6001 AND 8000 THEN 4WHEN t.M > 8000 THEN 5END) > 2.852 THEN '高'ELSE '低'END M_Rnk
FROM(SELECTCUSTOMER_ID,CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R, COUNT(1) AS F,SUM(TOTAL_AMOUNT) AS MFROMTRANSACTIONSGROUP BYCUSTOMER_IDORDER BYCUSTOMER_ID)t
▲图10 新增“RNK”等级字段
五、分析与策略
根据上一步获得的“RNK”等级评估标准对用户类型进行细分,获取用户画像,并且分别制定对应的策略。
基于用户画像分析,在数据表中新增“RFM-RNK”(客户分类)字段,定位客户类型。
SELECTrfm.*,CASEWHEN rfm.R_RNK = '高'AND rfm.F_RNK = '高'AND rfm.M_RNK = '高' THEN '重要价值客户'WHEN rfm.R_RNK = '高'AND rfm.F_RNK = '低'AND rfm.M_RNK = '高' THEN '重要发展客户'WHEN rfm.R_RNK = '低'AND rfm.F_RNK = '高'AND rfm.M_RNK = '高' THEN '重要保持客户'WHEN rfm.R_RNK = '低'AND rfm.F_RNK = '低'AND rfm.M_RNK = '高' THEN '重要挽留客户'WHEN rfm.R_RNK = '高'AND rfm.F_RNK = '高'AND rfm.M_RNK = '低' THEN '一般价值客户'WHEN rfm.R_RNK = '高'AND rfm.F_RNK = '低'AND rfm.M_RNK = '低' THEN '一般保持客户'WHEN rfm.R_RNK = '低'AND rfm.F_RNK = '高'AND rfm.M_RNK = '低' THEN '一般保持客户'WHEN rfm.R_RNK = '低'AND rfm.F_RNK = '低'AND rfm.M_RNK = '低' THEN '一般挽留客户'END rfm_Rnk
FROM(SELECTt.CUSTOMER_ID,t.R,CASEWHEN t.R BETWEEN 1 AND 4 THEN 5WHEN t.R BETWEEN 5 AND 8 THEN 4WHEN t.R BETWEEN 9 AND 12 THEN 3WHEN t.R BETWEEN 13 AND 16 THEN 2WHEN t.R > 16 THEN 1 END R_Grd,CASEWHEN (CASEWHEN t.R BETWEEN 1 AND 4 THEN 5WHEN t.R BETWEEN 5 AND 8 THEN 4WHEN t.R BETWEEN 9 AND 12 THEN 3WHEN t.R BETWEEN 13 AND 16 THEN 2WHEN t.R > 16 THEN 1END) > 3.441 THEN '高'ELSE '低'END R_Rnk,t.F,CASEWHEN t.F BETWEEN 1 AND 5 THEN 1WHEN t.F BETWEEN 6 AND 10 THEN 2WHEN t.F BETWEEN 11 AND 15 THEN 3WHEN t.F BETWEEN 16 AND 20 THEN 4WHEN t.F > 20 THEN 5END F_Grd,CASEWHEN (CASEWHEN t.F BETWEEN 1 AND 5 THEN 1WHEN t.F BETWEEN 6 AND 10 THEN 2WHEN t.F BETWEEN 11 AND 15 THEN 3WHEN t.F BETWEEN 16 AND 20 THEN 4WHEN t.F > 20 THEN 5END) > 2.751 THEN '高'ELSE '低'END F_Rnk,t.M,CASEWHEN t.M BETWEEN 1 AND 2000 THEN 1WHEN t.M BETWEEN 2001 AND 4000 THEN 2WHEN t.M BETWEEN 4001 AND 6000 THEN 3WHEN t.M BETWEEN 6001 AND 8000 THEN 4WHEN t.M > 8000 THEN 5END M_Grd,CASEWHEN (CASEWHEN t.M BETWEEN 1 AND 2000 THEN 1WHEN t.M BETWEEN 2001 AND 4000 THEN 2WHEN t.M BETWEEN 4001 AND 6000 THEN 3WHEN t.M BETWEEN 6001 AND 8000 THEN 4WHEN t.M > 8000 THEN 5END) > 2.852 THEN '高'ELSE '低'END M_Rnk
FROM(SELECTCUSTOMER_ID,CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R, COUNT(1) AS F,SUM(TOTAL_AMOUNT) AS MFROMTRANSACTIONSGROUP BYCUSTOMER_IDORDER BYCUSTOMER_ID)t)rfm
▲图11 新增“RFM-RNK”客户分类字段
六、用户画像可视化
基于前述数据分析的结果,并且结合店铺自身的业务场景,我们可以引入VIP客户占比、沉睡客户占比等关键绩效指标。这些指标对于深入了解客户群体结构和行为模式至关重要,能够帮助我们更加精准地把握营销侧重的方向。
针对以上整个RFM分析中的关键数据指标,我们可以利用DataEase强大的数据可视化呈现能力构建如下定制化的数据大屏,综合展示这些关键指标的实时动态,为运营人员提供一目了然的可视化效果,并且通过多维度的数据透视和交互功能,深入挖掘数据背后的潜在业务价值。
我们也可以通过定期更新的数据大屏,去实时监控不同类型客户的活跃度和贡献度,识别并维护高价值客户。同时,通过沉睡客户的占比分析,我们可以制定针对性的激活策略,挖掘潜在的客户消费机会。
▲图12 基于DataEase构建的“用户画像-RFM分析法”数据大屏
RFM分析数据大屏的构建有助于我们更精准地了解客户需求和市场变化,也能为制定更加细致的市场运营策略提供坚实的数据基础,让营销决策变得更加高效和科学。
注:本文所引用的RFM分析相关定义来源于《数据分析思维:分析方法和业务知识》一书,猴子.数据分析学院著。
相关文章:

操作教程|基于DataEase用RFM分析法分析零售交易数据
DataEase开源BI工具可以在店铺运营的数据分析及可视化方面提供非常大的帮助。同样,在用于客户评估的RFM(即Recency、Frequency和Monetary的简称)分析中,DataEase也可以发挥出积极的价值,通过数据可视化大屏的方式实时展…...

使用Go语言的gorm框架查询数据库并分页导出到Excel实例
文章目录 基本配置配置文件管理命令行工具: Cobra快速入门基本用法 生成mock数据SQL准备gorm自动生成结构体代码生成mock数据 查询数据导出Excel使用 excelize实现思路完整代码参考 入口文件效果演示分页导出多个Excel文件合并为一个完整的Excel文件 完整代码 基本配置 配置文…...

Run the FPGA VI 选项的作用
Run the FPGA VI 选项的作用是决定当主机 VI 运行时,FPGA VI 是否会自动运行。 具体作用: 勾选 “Run the FPGA VI”: 当主机 VI 执行时,如果 FPGA VI 没有正在运行,系统将自动启动并运行该 FPGA VI。 这可以确保 FPG…...

新手入门怎么炒股,新手炒股入门需要做哪些准备?
炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…...

Fetch 与 Axios:JavaScript HTTP 请求库的详细比较
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…...

记录一个Ajax发送JSON数据的坑,后端RequestBody接收参数小细节?JSON对象和JSON字符串的区别?
上半部分主要介绍我实际出现的问题,最终下面会有总结。 起因:我想发送post请求的data,但是在浏览器中竟然被搞成了地址栏编码 如图前端发送的ajax请求数据 如图发送的请求体: 很明显是keyvalue这种形式,根本就不是…...

【智能算法应用】长鼻浣熊优化算法求解二维路径规划问题
摘要 本文采用长鼻浣熊优化算法 (Coati Optimization Algorithm, COA) 求解二维路径规划问题。COA 是一种基于长鼻浣熊的觅食和社群行为的智能优化算法,具有快速收敛性和较强的全局搜索能力。通过仿真实验,本文验证了 COA 在复杂环境下的路径规划性能&a…...

微服务中的负载均衡算法与策略深度解析
在微服务架构中,负载均衡是保证系统高可用性和高性能的关键技术。通过合理地将请求分配给多个服务实例,负载均衡策略可以优化资源利用,实现请求的均衡处理。本文将深入探讨微服务中的负载均衡算法及其配置策略,帮助读者更好地理解…...

初知C++:AVL树
文章目录 初知C:AVL树1.AVL树的概念2.AVL树的是实现2.1.AVL树的结构2.2.AVL树的插入2.3.旋转2.4.AVL树的查找2.5.AVL树平衡检测 初知C:AVL树 1.AVL树的概念 • AVL树是最先发明的自平衡⼆叉查找树,AVL是⼀颗空树,或者具备下列性…...

[LeetCode] 67. 二进制求和
题目描述: 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 1: 输入:a "11", b "1" 输出:"100" 示例 2: 输入:a "1010", b "…...

工业物联网关-ModbusTCP
Modbus-TCP模式把网关视作Modbus从端设备,主端设备可以通过Modbus-TCP协议访问网关上所有终端设备。用户可以自定义多条通道,每条通道可以配置为TCP Server或者TCP Slave。注意,该模式需要指定采集通道,采集通道可以是串口和网口通…...

子组件向父组件传值$emit
点击子组件的按钮,将子组件的值传递给父组件,并进行提示。 子组件 <template><div><button click"emitIndex">clickme</button></div> </template> <script> export default {methods: {emitInde…...

校车购票微信小程序的设计与实现(lw+演示+源码+运行)
摘 要 由于APP软件在开发以及运营上面所需成本较高,而用户手机需要安装各种APP软件,因此占用用户过多的手机存储空间,导致用户手机运行缓慢,体验度比较差,进而导致用户会卸载非必要的APP,倒逼管理者必须改…...

【Golang】关于Go语言中的定时器原理与实战应用
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...

matlab不小心删除怎么撤回
预设项——>删除文件——>移动至临时文件夹 tem临时文件夹下...

云原生、云计算、虚拟化概念概述
(带着批评阅读,不对的请评论区补充) 1、出现年代前后顺序 虚拟化------>云计算------>云原生 2、虚拟化 虚拟化侧重描述实现,最开始的技术是模拟、hook指令执行软件程序,后续出现了半虚拟化、CPU硬件提供虚拟化…...

【Trulens框架】用TruLens 自动化 RAG 应用项目评估测试
前言: 什么是Trulens TruLens是面向神经网络应用的质量评估工具,它可以帮助你使用反馈函数来客观地评估你的基于LLM(语言模型)的应用的质量和效果。反馈函数可以帮助你以编程的方式评估输入、输出和中间结果的质量,从而…...

互联网线上融合上门洗衣洗鞋小程序,让洗衣洗鞋像点外卖一样简单
随着服务创新的风潮,众多商家已巧妙融入预约上门洗鞋新风尚,并携手洗鞋小程序,开辟线上蓝海。那么,这不仅仅是一个小程序,它究竟蕴含着哪些诱人好处呢? 1. 无缝融合,双线共赢:小程序…...

R语言绘制三维散点图
之前我们绘制的属于二维散点图,具有两个维度通常是 x 轴和 y 轴)上展示数据点的分布。只能呈现两个变量之间的关系。而三维散点图则具有三个维度(x 轴、y 轴和 z 轴)上展示数据点的分布。可以同时呈现三个变量之间的关系ÿ…...

2014年国赛高教杯数学建模A题嫦娥三号软着陆轨道设计与控制策略解题全过程文档及程序
2014年国赛高教杯数学建模 A题 嫦娥三号软着陆轨道设计与控制策略 嫦娥三号于2013年12月2日1时30分成功发射,12月6日抵达月球轨道。嫦娥三号在着陆准备轨道上的运行质量为2.4t,其安装在下部的主减速发动机能够产生1500N到7500N的可调节推力,…...

QD1-P25 CSS 背景
本节学习:CSS 背景属性 本节视频 https://www.bilibili.com/video/BV1n64y1U7oj?p25 背景颜色 背景图片 不重复 横向重复 纵向重复 双向重复 背景图片大小 400px 600px 原图大小 显示器宽度不够时&…...

《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署mongodb 7.0.14容器版分片集群》
总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:《Linux运维篇:Linux系统运维指南》 一、部署背景 由于业务系统的特殊性,我们需要面向不通的客户安装我们的业务系统&…...

Java利用ChromeDriver插件网页截图(Wondows版+Linux版)
chromedriver是谷歌浏览器驱动,用来模拟谷歌运行操作的一个工具,此处主要讲解Java后端利用此插件进行网页截图,并且适配Linux部署。 环境准备 Wondows服务器或电脑 本机需安装Chrome谷歌浏览器,根据本机浏览器版本,下载对应的chr…...

无人机之交互系统篇
一、系统构成 无人机交互系统通常由多个子系统组成,包括但不限于: 多模式人机交互装置:这是人机交互系统的基础层,通常包括计算机、局域网、传感器等设备,用于实现操作员与无人机之间的数据交互和指令传递。例如&…...

MarsCode--找出数字比例超过n/2的【简单】
问题描述 给定一个长度为n的整型数组,已知其中一个数字的出现次数超过数组长度的一半,找出这个元素 输入格式 一个长度为n的数组,其中某个元素的出现次数大于n/2 输出格式 一个整数 输入样例 [1,3,8,2,3,1,3,3,3] 输出样例 3 数据范…...

Python网络爬虫快速入门指南
Python网络爬虫快速入门指南 网络爬虫,也称为网络蜘蛛,是一种自动访问互联网并提取信息的程序。Python因其简洁明了的语法和丰富的库支持,成为开发网络爬虫的理想选择。在这篇博客中,我们将探讨如何快速入门Python网络爬虫技术&a…...

C86 架构一键离线安装 docker 和 docker-compose 实战指南
C86 架构一键离线安装 docker 和 docker-compose 实战指南 文章目录 C86 架构一键离线安装 docker 和 docker-compose 实战指南一 磁盘挂载二 docker 部署1 上传安装包2 解压安装包3 安装包 docker 三 验证安装四 清除安装包五 安装包下载地址 本文提供了在 C86 架构环境下&…...

【LwIP源码学习2】调试输出相关宏
前言 本文对lwip中debug.h文件里的调试相关宏进行分析。 正文 debug.h中有3个重要的调试相关宏: LWIP_ASSERT(message, assertion) LWIP_ERROR(message, expression, handler) LWIP_DEBUGF(debug, message) 断言 LWIP_ASSERT(message, assertion) 源代码为&…...

Python 列表专题:删除元素
Python 是一种强大的编程语言,广泛应用于数据分析、Web 开发、人工智能等多个领域。而列表(List)作为 Python 中最基本的数据结构之一,扮演着非常重要的角色。列表不仅可以存储各种类型的数据,还提供了丰富的操作接口,方便我们进行数据的增删改查。本篇博文将深入探讨 Py…...

Spring Boot 快速入门与核心原理详解
引言 在上一篇文章中,我们详细探讨了 Spring 框架中的事件监听与发布机制。本文将转向 Spring Boot,介绍如何快速入门 Spring Boot,并深入探讨其核心原理。Spring Boot 是由 Pivotal 团队提供的全新框架,旨在简化 Spring 应用的初…...