- 博客(27)
- 收藏
- 关注
原创 有关Redis的相关概述
Redis作为一种高性能的键值对数据库,具有广泛的应用场景和多种架构选择。在实际应用中,可以根据业务规模、性能要求、数据一致性需求等因素,选择合适的Redis架构和持久化策略,以实现高效、可靠、可扩展的存储和访问。特点:由一个主节点和多个从节点组成,主节点负责写操作,从节点负责读操作,数据从主节点同步到从节点.优点:提高可用性和读取性能,实现数据冗余备份.缺点:写操作性能受限,主从同步可能有延迟.特点。
2025-01-08 18:08:56
1288
1
原创 Python中的闭包和装饰器
装饰器是一个设计模式,通常用于不修改函数内容时增加函数功能的场景下。在Python中,装饰器通常用于日志记录、性能测试、十五处理等场景。装饰器的本质是一个函数,它接受一个函数作为参数并返回一个新的函数。闭包和装饰器是Python中强大的功能,它们允许我们在不修改原始函数代码的情况下增加新的行为。闭包通过捕获外部函数的变量来实现状态的保持,而装饰器则通过函数包装来增强函数功能。理解并掌握这两种技术,可以帮助我们编写更加模块化、可重用和易于维护的代码。
2025-01-02 18:15:20
318
原创 Python 中的重入锁(RLock)详解
在多线程和多进程编程中,同步机制是确保数据一致性和线程安全的关键。重入锁(Reentrant Lock),又称递归锁,是一种特殊的锁,允许同一个线程多次获取同一把锁。本文将详细介绍重入锁的原理,并提供一个简单的 Python 实现,同时对比线程和进程的概念。
2024-12-25 10:29:59
512
原创 Python中有关抽象方法的实现
在Python中,抽象类是通过abc模块(Abstract Base Classes)来定义的。以下是如何定义抽象类和抽象方法的步骤:导入abc模块。从abc模块中继承ABC(Abstract Base Class的缩写)类,使得你的类成为抽象类。使用装饰器来标记抽象方法,这些方法必须在子类中被实现。# 定义抽象类# 抽象方法,不能有具体的实现pass# 继承抽象类并实现抽象方法的具体类# 尝试实例化抽象类将会引发错误。
2024-12-23 10:27:06
319
原创 Python中面向对象编程思想
本文旨在深入探讨Python中的面向对象编程(OOP)概念,包括其核心思想、实现方式以及最佳实践。我们将从OOP的基础知识入手,逐步深入到更高级的特性,如继承、多态和封装,并探讨如何在实际编程中应用这些概念。面向对象编程(OOP)是一种以对象为核心的编程范式,它通过类和对象的概念来设计软件,提高了代码的可读性和可维护性。OOP的核心在于封装,它将数据和相关操作封装在一起,隐藏内部实现细节,仅对外暴露必要的接口。继承允许新类继承现有类的属性和方法,从而扩展或覆盖原有功能。
2024-12-19 19:57:33
697
原创 Python 实现学生信息录入系统:从类的创建到信息管理
在每次循环中,通过 input 函数从键盘接收学生的姓名、年龄和地址,并使用这些信息创建一个 Student 类的实例。enumerate 函数在这里发挥了重要作用,它会将 student_list 列表的元素及其索引组合成元组,在 for 循环中,i 表示索引,student 表示 Student 类的实例。本次我们的任务是设计一个简单的 Python 程序,用于完成学生信息的录入和管理。具体而言,我们需要记录学生的姓名、年龄和地址这三项基本信息,并通过键盘输入这些信息,最终将录入的信息进行输出展示。
2024-12-18 19:39:56
856
原创 基于Python的订单数据分析与可视化
本文档详细介绍了使用Python进行订单数据分析和可视化的过程。我们的目标是从存储在文本文件中的JSON数据中提取信息,对这些数据进行处理和聚合,最后以图表的形式展示分析结果。本文档将详细介绍所使用的技术、编程核心思想、实现过程中遇到的问题及其解决方案。Python是一种解释型、高级和通用的编程语言。它的设计哲学强调代码的可读性,简洁的语法和强大的社区支持,使其成为数据分析和自动化脚本的首选语言。
2024-12-16 19:09:55
1094
原创 Python异常处理、模块与包:深入解析与实践
自定义模块允许我们封装特定的功能,使其可以在不同的项目中重用。通过创建一个Python文件并在其中定义函数和类,我们就创建了一个模块。使用结构,我们可以在模块被直接执行时运行测试代码,而在模块被导入时不执行这些代码。模块是单个的Python文件,用于封装特定的功能。包是包含多个模块的目录结构,用于组织和管理模块集合。
2024-12-13 16:37:36
587
原创 SQL习题
现有一张表 data 表,字段如下:phone;可以使用 CASE 语句,结合 PIVOT 或 JOIN 来构造高价值用户的统计。由于 SQL 没有直接的 APPLY 函数,这里用 CASE 替代。假设 df 表已存在,需要找到每个订单的复购单数和金额。可以使用 JOIN 来合并 df 和 data。可以使用 ROW_NUMBER() 函数来找出每个手机号的第一次下单时间,以此来判断是否为新客户。可以使用 COUNT(DISTINCT phone) 来统计 2024 年的下单人数。
2024-11-28 17:21:33
472
原创 有关SQL习题以及答案
索引与子查询 题目:假设 orders 表有一个复合索引 idx_customer_order 在 customer_id 和 order_date 列上,优化以下查询: SELECT * FROM orders WHERE customer_id IN (SELECT customer_id FROM customers WHERE customer_id > 100);复合索引 题目:在 orders 表的 customer_id 和 order_date 列上创建一个复合索引。
2024-11-28 17:13:10
632
原创 有关SQL习题记录
此时需要插入第二条数据,按照大的放左边原则,比较'Alice'与'Bob'的ASCII编码值,通过查表可知,首字母‘B’的ASCII编码值要大于'A'的值。在关系型数据库中,索引是依赖于表的数据结构,索引本身并不独立于表存在,因此,当一个表被删除时,数据库会自动删除该表相关的所有索引(包括索引树的叶子节点和内部节点)。回表查询(或称为回表操作)是指在数据库查询中,当一个索引不能包含查询所需的所有列时,数据库需要先通过索引查找到相关的记录位置(主键或行号),然后再回到表中读取完整的行数据。
2024-11-27 17:03:07
615
原创 MySQL中锁的机制、日志以及数据库引擎
基于之前对于SQL的介绍,今天将分享对于MySQL中锁的机制以及常见数据库引擎的介绍。全局锁:对整个数据库实施加锁,通常用于全库备份和恢复操作。表级锁:对单个表加锁,包括意向锁、自动拓展锁等。行级锁:对单个行记录加锁,只在支持行级锁的存储引擎中存在,如InnDB。MySQL是一个关系型数据库管理系统,其核心功能包括锁机制、日志系统和多种存储引擎。锁机制是确保事务隔离性和数据一致性的关键,包括全局锁、表级锁和行级锁,其中行级锁主要在InnoDB等支持行级锁的存储引擎中实现。
2024-11-26 17:24:29
1145
原创 SQL索引
创建表时创建索引是在定义表结构的同时定义索引,这样可以在数据加载前就建立索引,有助于保持数据一致性,并且与表创建是同一个事务,但如果索引创建失败,可能导致整个表创建事务回滚。而创建表之后创建索引是在表已存在的情况下,通过额外的操作添加索引,这提供了更大的灵活性,可以根据实际需求灵活添加、修改或删除索引,且创建索引是独立事务,表创建成功不。代码分析 :同上创建普通索引,但是在最后一行使用了关键字符“UNIQUE”作为唯一索引的命令唯一索引确保索引列中的所有值都是唯一的,即不允许有两条记录在该列上有相同的值。
2024-11-26 00:49:37
717
原创 SQL中的操作符与通配符
代码说明:从一个表名为 Products中选择名为“ProductName”,“Categroy”字段进行查询,查询方式为找到所有以“IQQO”开头的产品。LIKE操作符用于WHERE子句中搜索列的指定模式,通常进行模糊查询,通常与“%”和“_”通配符一起使用。column1,column2,...:要选择的字段名称,可为多个字段。今天介绍一下SQL语句中的LIKE操作符与通配符,在SQL中属于使用频率较高,接下来是介绍。查询方式:第一个字符为“D”,第二个字符为“e”的产品。“_”:匹配单个字符。
2024-11-25 10:08:48
441
原创 SQL数据语言
SQL全称为:Structured Query Language:结构化查询语言,用于管理关系型数据库管理系统,通过一系列的语句和命令来执行数据定义、查询、操作、控制等功能(增删改查)。(1)SELECT:select用于从数据库中查询数据。(5)CREATE TABLE:用于创建新的数据库表。(14)JOIN:用于将两个或者多个表的记录结合起来。(3) UPDATE:用于更新数据库表中的现有数据。(4) DELETE:用于从数据库表中删除数据。(7)DROP TABLE:用于删除数据库的表。
2024-11-22 11:02:59
352
1
原创 定时器的基本原理
c51定时计数器:T0(外部输入信号)和T1,为16位加法计数器,由高8位(TH0)和低8位(TL0),脉冲长度T*脉冲个数得到脉冲长度。高4位定义定时/计数器1,低4位定义定时/计数器0
2022-01-24 11:03:27
11424
2
原创 中断的基本操作
基于IAP15F2K61S2单片机的中断控制,该单片机的内核与stc89c52一致,通过加入中断函数,我们可以在完成一些特定的功能时,遇到紧急事件时可跳出主程序进行相应功能的执行。在生活中该功能被广泛运用。
2022-01-22 11:18:00
2818
原创 独立按键的基本操作:
新建工程,以 I/O 模式编写代码,在 CT107D 单片机综合训练平台上,实现以下功能:1、将 CT107D 上 J5 处跳帽接到 2~3 引脚,使 S4、S5、S6 和 S7 成为 4 个独立按键。2、系统上电后,关闭蜂鸣器,关闭继电器,关闭 8 个 LED 灯。3、循环扫描按键状态,在确认按键按下时,进行去抖动处理。
2022-01-19 23:40:11
911
原创 数码管的动态显示
静态显示:1.点亮一个LED,P0口发送com口对应的编码并给一个高电平。2.四个数码管亮,静态显示可以显示不同的内容,4个不同的IO口控制4个不同com的口。3.com1、com2、com3、com4分别显示。动态显示:轮流点亮单个数码管实现多为数码管整体显示的效果。轮流显示设置点亮时间1-2ms,视觉暂留,二极管的余晖效应。动态显示需要12个IO引脚(8个断码+4个com端)。代码:【训练要点】: 数码管动态显示的工作原理。 掌握数码管各位同时显示不同的数据内容。#include
2022-01-18 23:56:34
4520
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人