- 博客(50)
- 收藏
- 关注
原创 Python 文件操作完全指南:读写与文件夹管理
文件操作是 Python 的基本功。用 with open 永远不要忘记 encoding=‘utf-8’,能省掉很多麻烦。
2026-04-12 03:05:37
23
原创 Python 异常处理与调试完全指南:让你的程序更健壮
raise MyError("出错了", code=500)异常处理是保证程序健壮性的关键。不要害怕异常,要拥抱异常处理。做好异常处理,程序才能在生产环境中稳定运行。
2026-04-12 03:05:13
144
原创 Python 面向对象编程完全指南:类与对象
"""一个人"""self.name = name # 实例属性print(f"你好,我叫class Person : """一个人""" def __init__(self , name , age) : self . name = name # 实例属性 self . age = age def say_hello(self) : print(f"你好,我叫 {self . name } ,今年 {
2026-04-12 03:04:45
38
原创 Python 字符串处理完全指南:常用操作与技巧
字符串方法虽然多,但大部分场景常用的就那么十几个。能用 f-string + split/join/strip/replace 解决的问题,就不要上正则。
2026-04-12 03:04:22
43
原创 Python 函数完全指南:参数、返回值与高级用法
函数是 Python 编程的灵魂。掌握好参数传递、返回值、lambda 和装饰器,你的代码会变得简洁又优雅。好的函数应该做一件事,而且做好这件事。
2026-04-12 03:03:22
190
原创 Python 列表完全指南:从基础到进阶
列表是 Python 里最强大的数据结构之一。熟练掌握列表推导式、切片和各种方法,能让你的代码既简洁又高效。能用列表推导式解决的问题,就不要用普通循环。
2026-04-11 19:31:40
38
原创 Python 字典完全指南:从入门到实战
字典是 Python 里最强大的数据结构之一,用熟了真的能大大简化代码。大部分需要快速查找的场景,字典都是首选。有问题评论区见!
2026-04-11 19:15:23
48
原创 Python for循环练习(1到100求和实现方法)
【Python循环练习:1到100求和】 本文讲解了如何使用for循环计算1到100的累加和。通过初始化total变量为0,利用range(1,101)生成1-100的数字序列,在循环中逐个累加到total。最终输出结果为5050。这个练习演示了Python中for循环和累加器的基本用法,是编程入门的基础练习题,涵盖了循环控制、范围函数和累加思想等核心概念。代码简洁明了,仅需4行即可完成从1加到100的计算任务。
2026-04-11 01:05:39
35
原创 Python if条件判断练习(成绩等级划分实现)
这篇Python教程讲解了如何使用if条件判断实现成绩等级划分。通过输入0-100的分数,程序会输出对应的字母等级(A-E)。文章提供了完整可运行的代码示例,并逐行解释了代码逻辑,重点说明了if/elif/else语句的使用方法以及从高到低判断分数区间的必要性。最后总结了条件判断的核心知识点,帮助初学者掌握Python基础编程技巧。
2026-04-11 01:03:51
48
原创 Python输入输出基础练习(附代码详解)
通过这个基础示例,初学者可以掌握Python编程最基本的输入-处理-输出流程,这是学习后续更复杂编程题目的重要基础。
2026-04-11 00:55:44
36
原创 【Git进阶】项目升级后不再需要的文件如何优雅处理?搞懂文件移除全流程!
本文详细介绍了如何使用Git高效管理项目中不再需要的文件。文章分析了废弃文件存在的常见场景及其影响,包括仓库膨胀、团队协作困扰等问题。重点讲解了两种文件删除方式:彻底删除文件和保留本地文件但停止版本控制,并提供了具体命令示例。针对高级需求,介绍了递归删除目录和清理历史大文件的方法。最后总结了定期清理、及时提交等最佳实践,帮助开发者保持Git仓库的整洁高效。这些技巧能有效提升项目维护效率,优化团队协作环境。
2025-07-30 16:58:00
693
原创 【Git 进阶】详解 git reset 中 soft、mixed、hard 的区别与实战场景,一篇搞定版本回退!
摘要:git reset命令用于重置分支HEAD到指定提交,提供三种模式:--soft仅移动HEAD保留修改;--mixed(默认)还重置暂存区,保留工作区修改;--hard彻底重置HEAD、暂存区和工作目录,会丢失未提交修改。其中--hard风险最高,使用时需谨慎。该命令常用于撤销提交或回退版本,选择不同模式可灵活控制修改的保留情况。
2025-07-30 16:46:17
715
原创 【Git 必备技能】手把手教你配置 kdiff3 可视化差异对比工具,提升开发效率 100%!(附常见问题解决方案)
本教程介绍如何配置Git使用kdiff3作为可视化差异对比工具。首先需确保已安装kdiff3,然后通过命令行或编辑.gitconfig文件进行配置,指定kdiff3路径并禁用提示。配置完成后,使用git difftool命令即可调用kdiff3直观查看文件差异。文中还提供了常见问题的解决方法,如路径错误、参数传递失败等。该配置能显著提升代码比对效率,适合需要图形化差异查看的开发场景。
2025-07-30 16:00:19
729
原创 【二叉树遍历】已知一棵二叉树的后序遍历为DABEC,中序遍历为DEBAC,则先序遍历为
通过已知的后序遍历和中序遍历,我们可以构造出这棵二叉树并求出它的先序遍历。在后序遍历中,最后一个节点是根节点,因此根节点为。将序列分成左右子树:左子树为。
2024-11-07 14:24:29
707
原创 @SpringBootApplication注解有什么用(简单)
是 Spring Boot 应用的一个核心注解,它用于标记一个主程序类,使其成为 Spring Boot 应用的入口。: 这个注解告诉 Spring Boot 根据应用所声明的依赖,猜测和配置需要的 bean。这样可以自动配置 Spring 应用的上下文,避免了大量的手动配置。: 这个注解启用组件扫描,允许 Spring 查找并注册在当前包及其子包中定义的所有。成为配置和启动 Spring Boot 应用的一个便利工具。注解,表示这是一个 Spring 配置类。
2024-07-18 10:22:49
468
原创 SpringBoot如何限制请求访问次数
在Spring Boot应用中限制请求访问次数可以通过几种不同的方法实现,如使用Rate Limiting中间件或自定义拦截器。
2024-07-18 10:18:49
1324
原创 linux的rm命令是删除到回收站吗?
图形化文件管理器(如 GNOME 的 Nautilus 或 KDE 的 Dolphin)通常提供回收站功能,用户可以在这些文件管理器中通过右键菜单删除文件,它们会被移动到回收站。回收站机制需要额外的磁盘空间来保存被删除的文件,对于服务器和嵌入式设备等资源有限的环境,这种节省是有意义的。命令直接删除文件,符合这种设计理念,而不是增加复杂性来管理一个回收站。:用户可以编写脚本,实现类似回收站的功能。:一个命令行工具,可以将文件移动到回收站而不是直接删除。,将文件移动到指定的“回收站”目录,而不是直接删除。
2024-07-18 10:11:47
894
原创 Linux常用命令(简要总结)
Linux 是一个强大的操作系统,广泛应用于服务器、开发和嵌入式系统中。掌握一些常用的 Linux 命令对于高效地使用系统至关重要。以上是 Linux 系统中常用的一些基本命令。:分页查看文件内容,支持向前翻页。:显示目录或文件的磁盘使用情况。:实时显示系统性能和进程信息。:移动或重命名文件或目录。:更改文件或目录所有者。:显示磁盘空间使用情况。:连接并显示文件内容。:查看文件的开头部分。:查看文件的结尾部分。:在文件中搜索字符串。:更改文件或目录权限。:显示或配置网络接口。:通过SSH复制文件。
2024-07-18 10:07:34
20294
16
原创 postman中参数和x-www-form-urlencoded传值的区别
Params:用于在 URL 中传递查询参数,适用于 GET 请求和非敏感数据。:用于在请求正文中传递数据,适用于 POST 请求和表单数据。选择哪种方式取决于具体的使用场景和数据类型。
2024-07-04 16:17:56
1496
原创 验证输入数据的注解:@NotNull和@NotEmpty的区别
使用@NotNull确保字段不为null。使用@NotEmpty确保字段不为null且不为空。具体使用哪个注解取决于你的业务需求,例如:对于用户名,通常希望它既不为null也不为空,因此使用@NotEmpty更合适;而对于密码,我们不仅希望它不为null,还希望它符合一定的长度,因此可以组合使用@NotNull和@Size。
2024-07-04 15:09:27
924
原创 错误V000151: A method overriding another method must not redefine the parameter constrain
NotNull;Size;// 实现代码 } }// 实现代码 } }// 实现代码 } }NotNull;// 实现代码 } }// 实现代码 } }Size;@Override// 实现代码在上述示例中,类的register方法完全遵循接口的参数约束配置。@Overridepublic void register(@NotNull @Size(min = 3, max = 16) String username, // 错误的约束。
2024-06-18 23:01:20
2007
原创 Result类忘记添加@Data注解导致406错误
Data注解帮助确保对象具有必要的getter和setter方法,从而使序列化过程顺利进行,间接避免了可能导致的 406 错误。然而,直接导致 406 错误的原因通常是请求头与响应格式不匹配,因此在开发中还需要确保客户端和服务器之间的正确通信。
2024-06-18 20:54:32
719
原创 MyBatis通过配置实现下划线命名法和驼峰命名法之间的自动转换
如果你需要更复杂的转换逻辑,可以使用自定义类型转换器。在这种情况下,你需要实现接口。
2024-06-18 10:13:40
3093
原创 @ComponentScan 和 @ServletComponentScan的区别
和是用于 Spring 框架中进行组件扫描的注解,但它们有不同的用途和应用场景。
2024-06-17 10:47:31
1437
原创 常用参数注解
异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。服务于SQL语句中的参数数值,@Param 是mybatis注解。@RequestMapping后,返回值通常解析为跳转路径。@ResponseBody注解是写在方法上的。
2024-06-17 10:14:36
424
原创 新项目Springboot报错: Whitelabel Error Page
一般出现这个问题的原因就是目录结构不正确,导致主应用程序类(Main application class)扫描不到controller类。在application类上加上@ComponentScan的注解:(com.example是需要扫描的包名)默认情况下主应用程序类(Main application class)只会扫描同一包下的Class。新项目Springboot报错: Whitelabel Error Page。
2024-06-17 09:30:29
1054
原创 (数据结构)删除有序的顺序表中的重复元素
#include <stdio.h>#include <stdlib.h>#define DATATYPE int#define MAXSIZE 100typedef struct{ DATATYPE data[MAXSIZE]; int len; }SEQUENLIST;void INITATE(SEQUENLIST *L)//初始化线性表,参数L是表的名字 { L->len=0; }void CREAT(SEQUENLIST *L,int n)
2020-12-16 21:24:02
3749
原创 (数据结构)设计一算法,逆置带头结点的单链表head,要求利用原表的结点空间,并要求用尽可能少的时间完成。
/*带头结点的单链表逆置 */#include<stdio.h>#include<stdlib.h>struct node{ int data; struct node* next;};struct node* creat(){ //构造单链表 int i,num; struct node* head; struct node* q; head = (struct node*)malloc(sizeof(struc
2020-12-16 21:16:00
3057
原创 (数据结构)实现非递归的二分查找算法
#include <stdio.h>#include <stdlib.h>int binSearch1(int* a, int left, int right, int data){ int mid =0; while (left<=right) { mid = (left + right) / 2; if (data == a[mid]) { return mid; } else if (data > a[mid]) {
2020-12-16 20:39:47
437
原创 (数据结构)在顺序表中实现删除操作
#include <stdio.h>#include <stdlib.h>#define DATATYPE int#define MAXSIZE 100typedef struct{ DATATYPE data[MAXSIZE]; int len; }SEQUENLIST;void INITATE(SEQUENLIST *L)//初始化线性表,参数L是表的名字 { L->len=0; }void CREAT(SEQUENLIST *L,int n)
2020-12-16 20:17:05
1847
1
原创 (数据结构)在顺序表中实现插入操作
#include <stdio.h>#include <stdlib.h>#define DATATYPE int#define MAXSIZE 100typedef struct{ DATATYPE data[MAXSIZE]; int len; }SEQUENLIST;void INITATE(SEQUENLIST *L)//初始化线性表,参数L是表的名字 { L->len=0; }void CREAT(SEQUENLIST *L,int n)
2020-12-16 20:03:52
4980
1
原创 2020-11-05
#include<stdio.h>#include<stdlib.h>struct NODE{int date;struct NODE *next;};typedef struct NODE *node;int count = 0;node creat(){node pHead=NULL,pNew,pEnd;printf(“输入数据,当输入-1时停止\n”);pNew=(node)malloc(sizeof(struct NODE));scanf("%d",&
2020-11-05 10:51:54
189
原创 (数据结构)冒泡排序,直接插入排序
#include <stdio.h>#include <stdlib.h>#define KEYTYPE int#define MAXSIZE 100typedef struct{ KEYTYPE key;}RECORDNODE;void gaosort(RECORDNODE *r,int n){ int i,j; for(i=n-2;i>=0;i--) { r[n]=r[i]; j=i+1; while(r[n].key>r[j].k
2020-11-04 22:49:19
266
原创 (数据结构)实现递归的二分查找算法。
#include <stdio.h>#include <stdlib.h>#define DATATYPE char#define NULL '\0'typedef struct node{ DATATYPE data; struct node *lchild,*rchild;}BTLINK;BTLINK *creat(){ BTLINK *q; BTLINK *s[30]; int j,i; char x; printf("i,x="); scan
2020-10-22 12:03:22
307
原创 (数据结构)以二叉链表作存储结构,设计求二叉树高度的算法。
#include <stdio.h>#include <stdlib.h>#define DATATYPE char#define NULL '\0'typedef struct node{ DATATYPE data; struct node *lchild,*rchild;}BTLINK;BTLINK *creat(){ BTLINK *q; BTLINK *s[30]; int j,i; char x; printf("i,x="); scan
2020-10-22 11:36:57
5365
原创 作业4链队列
```c#define datatype int#define NULL 0#include <stdio.h>#include <stdlib.h>typedef struct qnode{ datatype data; struct qnode *next;}LINKNODE;typedef struct{ LINKNODE* front,*rear;}LINKQUEUE;void initlinkqueue(LINKQUEUE* q){ .
2020-10-09 14:42:09
180
原创 (数据结构)建立循环队列,将一组数据入队,然后再分别出队并输
#include <stdio.h>#define MAXSIZE 100#define datatype char#define NULL '\0'typedef struct{ datatype data[MAXSIZE]; int front,rear;}SEQUEUE;void initqueue(SEQUEUE *q){ q->front=-1; q->rear=-1;}void enqueue(SEQUEUE *q,datatype x)
2020-10-09 13:59:35
1463
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅