自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 收藏
  • 关注

原创 ENSP学习记录(9)

TCP与UDP的核心区别在于可靠性与效率:TCP面向连接、可靠、有序,开销大;UDP无连接、不可靠、高效,适合实时应用。三次握手确保双方收发能力并同步序列号,四次挥手因TCP全双工特性需分别关闭两个方向。关键在于理解“序列号按字节编号”“确认号反映期望接收”“滑动窗口实现流量控制”。学习应从“设计者视角”出发,而非死记结论,方能真正掌握传输层机制。

2026-11-04 22:46:33 257 1

原创 ENSP学习记录(8)

本文以“封装的完整过程”为核心,通过亲手绘制五层网络模型,直观理解数据从应用层到物理层逐层加头(如HTTP、TCP、IP、Eth头)的过程,揭示各层职责:应用层定请求,传输层管端口与序号,网络层负责路由,链路层定位下一跳,物理层发送比特流。特别指出链路层在尾部添加FCS的原因——必须整帧校验。接收方则反向解封装,逐层剥离头部。封装虽增加开销,却实现各层独立工作,提升可维护性与灵活性。抓包时按“字段归属”分层分析,化繁为简。最终领悟:网络是各层角色协同的精密系统,理解“谁看哪部分”比死记硬背更有价值。

2026-11-04 22:44:48 392 1

原创 ENSP学习记录(7)

模块四网络参考模型让我真正理解分层的意义:分层是解决问题的“尺子”,而非死记硬背。通过追问“每一层管什么、不管什么”,我领悟到交换机只看MAC地址,路由器查IP,主机处理全栈;各层职责分明,实现解耦、标准化与高效排错。PDU随层级变化,链路层唯一头尾皆加。设备行为差异源于其工作层次——交换机二层快,路由器三层慢,主机七层最全。最终收获:用“拆到哪层、依据什么”视角看设备,结论可推导,不再依赖记忆。

2026-11-04 22:43:19 234 1

原创 ENSP学习记录(6)

两个看似简单的文件管理实验,揭示了设备配置管理的核心机制:删除非真删(进回收站),save仅存文件,startup指定下次启动读取文件,reboot才生效。三者缺一不可,否则重启后配置未更新或丢失。关键在于区分“文件存在”“下次读哪份”和“真正生效”三个阶段,避免误删、配置失效等运维风险。

2026-11-02 22:11:36 337 1

原创 ENSP学习记录(5)

本文通过两个小型实验:使PC与路由器ping通,以及配置“能看不能改”的远程登录,揭示了网络配置中的关键细节。从首次ping延迟、TTL值解读到网关作用,再到VTY用户权限与命令级别关系,作者强调验证现象、按序排错、理解数字背后含义的重要性。真正的学习不在于“会操作”,而在于追问“为什么”,唯有如此,才能将操作转化为深刻理解。

2026-11-02 22:06:41 224 1

原创 ENSP学习记录(4)

本文记录了初学华为设备命令行的实战心得:从误触权限、视图错误到理解命令结构。核心收获是:不再死记命令,而是掌握“三要素”——当前视图(看括号)、想干什么(命令字)、对谁操作(参数)。善用?和Tab补全,读懂^定位报错,理解权限分级机制,让命令行成为高效助手。真正的学习不是背命令,而是理解逻辑,顺势而为。

2026-11-02 22:03:24 163 1

原创 ENSP学习记录(3)

框式设备的“三个平面”——控制、转发、监控,分工明确:控制平面算路由,转发平面硬件高速转发,监控平面保障设备安全。高端设备业务报文全程硬件处理,主控CPU不参与,故高效且抗攻击;协议报文才需上送CPU,因此存在限速机制。路由表经计算生成FIB下发至接口板执行,实现“想”与“做”分离。拓扑中全网状可靠性最高。学习关键在于追问“为什么”,理解设计背后的逻辑。

2026-11-01 18:06:32 358 1

原创 ENSP学习记录(2)

交换机工作在数据链路层(二层),依据MAC地址转发,不隔离广播域;路由器工作在网络层(三层),依据IP地址路由,可隔离广播域。广播域指一台设备广播消息能被听到的范围,交换机传播广播,路由器阻断。理解广播域是掌握VLAN的基础。无线设备中,胖AP自管,瘦AP由AC统一管理,云管理则通过云端控制。家中路由器实为四合一设备,企业需拆分以提升可靠性。学习时应追问“若无此概念会怎样”,让知识真正“活”起来。

2026-11-01 18:05:11 247 1

原创 ENSP学习记录(1)

本文分享了在ENSP环境中学习通信、网络通信与数据通信网络的区分心得。通过类比“传话”“用网络传话”“设备系统传话”,厘清三者层级关系;以寄快递比喻封装过程,理解报文结构;反思“报文必有尾部”“网关是设备”等误区,强调概念本质理解的重要性。核心观点:能否举出反例,是检验是否真正掌握的关键。

2026-11-01 18:03:04 214 1

原创 Python基础语法练习题(77)

读取student_grade_file.txt,用列表存储成绩,通过函数返回最高分、最低分和平均分(保留两位小数)。利用元组打包与解包实现多值返回,选用列表因可变且允许重复;数值转换统一使用float以兼容小数。复用文件读取逻辑,按逗号分割取最后一列成绩,最终输出三统计值,掌握函数传参、容器选型与类型处理核心技巧。

2026-10-31 15:42:04 165 1

原创 Python基础语法练习题(76)

本文实现从student_grade_file.txt读取学生数据,经清洗(处理乱码、空行、表头)、按三科总分排序后,生成带名次与总分的排行榜,并写入新文件。程序拆分为读、排、写三函数,采用strip()、isdigit()防错,sorted()+lambda高效排序,__file__定位路径,输出对齐美观。全过程体现真实数据处理中的防御性编程思维,代码简洁且可复用。

2026-10-31 15:39:29 214 1

原创 Python基础语法练习题(75)

本文设计了一个简单的在线聊天室类,通过分离“状态”(当前用户列表)与“历史”(消息记录),实现加入、离开、发送消息和查看记录四大功能。核心思想是:用户状态动态变化,消息历史永久留存。利用in判断防重、验权,代码逻辑清晰。虽存在打印与逻辑耦合、缺乏时间戳等不足,但数据结构的合理拆分让系统具备良好扩展性,体现了“状态与历史分离”的设计智慧。

2026-10-31 15:34:02 154 1

原创 Python基础语法练习题(74)

本文对比了两个版本的TextFileHandler类:第一版功能实现但接口设计粗糙,存在返回值混淆、错误提示隐式、操作固定且无法追加等问题;第二版通过分离文件存在性判断、明确返回布尔值、引入菜单交互与追加/覆盖模式选择,实现了更清晰、可复用的接口。作者总结:程序“能跑”不等于“能用”,良好的接口设计应让类专注逻辑,将交互责任交还主程序,提升可用性与可维护性。

2026-10-29 12:29:39 179 1

原创 Python基础语法练习题(73)

本文实现了一个功能完整的ShoppingCart类,采用嵌套字典存储商品信息(商品名→数量与单价),支持添加、删除、查看及计算总价。通过类型注解提升代码可读性,遵循“类只负责逻辑,交互由主程序处理”的职责分离原则,避免方法内混入输入逻辑。引入标志位循环进行输入校验,确保数据合法性,并优化设计:方法仅返回结果,打印交由主程序控制。最终实现结构清晰、可维护性强的面向对象购物车系统,体现了对封装、职责划分与代码质量的深入理解。

2026-10-29 12:25:45 185 1

原创 FastAPI猜字谜实战(8):收官

本文为系列收官之作,聚焦解决项目落地前的六大体验痛点:通过延迟启动自动打开浏览器、双重过滤AI回复中的Markdown符号、加载时优先续玩上局、为历史会话添加可编辑名称、降低模型温度以减少乱码词,最终实现流畅可用的AI猜字谜应用。作者总结:技术落地不靠炫技,而在于逐个击破真实问题,按“后端接口→前端联调→细节打磨”顺序推进,方能稳中致远。

2026-10-27 15:30:06 1034 1

原创 FastAPI猜字谜实战(7):前端页面

本文为系列第七篇,为后端聊天功能添加前端界面。通过HTML、CSS、JS三文件构建类聊天应用的交互界面:使用index.html搭建页面结构,style.css实现深色渐变与气泡样式,game.js实现新游戏初始化、消息发送与接收。前端通过fetch与后端通信,遵循统一的“三件套”接口格式,安全地渲染用户与AI对话,采用textContent防止XSS攻击,并利用white-space:pre-wrap正确显示换行,提升用户体验。

2026-10-27 15:26:34 461 1

原创 FastAPI猜字谜实战(6):日志与异常

本文分享了后端调试与错误处理的规范化实践:将散乱的print替换为结构化logging,通过配置格式化输出时间、级别、文件及行号;关闭UVicorn访问日志以减少干扰;最终通过全局异常处理器统一捕获未处理异常,返回标准化JSON错误响应,既保障前端体验,又确保错误信息可追溯,大幅提升系统可观测性与健壮性。

2026-10-25 21:58:50 323 1

原创 FastAPI猜字谜实战(5):会话管理

本文实现会话管理的三大核心功能:通过GET接口列出所有历史会话,按时间戳倒序展示每局的ID、名称及消息数量;通过GET /api/sessions/{id}详情接口读取指定会话完整内容;通过DELETE接口安全删除会话,先判断文件存在再删除,避免异常。三接口协同,使用户可查看、继续或清理历史对话,完成会话全生命周期管理。

2026-10-25 21:55:45 124 1

原创 FastAPI猜字谜实战(4):让AI主持人开口

本文介绍如何通过DeepSeek大模型实现游戏主持人“柯灵”的智能对话功能。核心在于构建带历史记忆的messages列表,将系统提示、用户与AI交互记录按序拼接,并在每次调用后更新会话状态。通过环境变量管理密钥、合理存删历史消息,确保AI能记住谜底、持续判题,实现连贯互动。最终让猜字谜游戏具备真正“有灵魂”的对话体验。

2026-10-25 21:52:16 359 1

原创 FastAPI猜字谜实战(3):把每一局存成JSON

本文为系列第三篇,聚焦后端数据持久化。通过定义统一的API响应结构,实现新建会话接口(POST /api/sessions),生成唯一微秒级编号作为文件名,将会话数据(含空消息列表与默认名称)以JSON格式写入磁盘。确保每局游戏独立存储,支持后续历史记录查询。当前仅为“空壳”,下一章将接入大模型,实现AI对话并持续更新会话内容。

2026-10-23 22:28:52 125 1

原创 FastAPI猜字谜实战(2):让后端显示页面

本文为系列第二篇,实现FastAPI后端返回HTML页面并支持静态资源。通过FileResponse返回index.html,用StaticFiles挂载/static路径以服务CSS和JS文件,并以Path(__file__).resolve().parent为锚点确保路径正确。完成首页接口与静态资源配置后,验证页面及样式加载正常,后端骨架初步成型,为后续接入游戏数据奠定基础。

2026-10-23 22:26:00 153 1

原创 FastAPI猜字谜实战(1):搞懂前后端分工

本文是「汉字弥合」AI猜字谜Web应用系列的第一篇,以最小可行项目开启前端与后端的探索。通过FastAPI与Uvicorn搭建轻量后端,仅用六行代码实现HelloWorld接口,展示Python在网页开发中作为“后厨”的核心作用:接收请求、处理逻辑、返回JSON数据。借助自动生成的/docs调试页面,无需前端即可测试接口。文章强调:所有Python代码属后端,真正的界面将在后续用HTML/CSS/JS构建。同时引入RESTful设计规范,明确网址定位资源、请求方法定义动作,为后续游戏功能打下基础。

2026-10-23 22:22:42 290 1

原创 面向对象高级(实战案例)

本文基于Python面向对象高级知识,实现《书海灯塔·命令行图书借阅系统》。通过封装、继承、多态等特性,设计Book、Member及其子类NormalMember/VIPMember,实现会员分级借阅规则(普通3本,VIP最多6+等级本)。系统层LibrarySystem统一管理登录、借还、数据持久化(JSON),利用多态实现对不同会员的灵活处理,无需判断类型。关键设计包括私有属性保护、get_max_borrow()强制子类重写、to_dict()复用父类逻辑,以及通过type字段动态实例化会员类型。实测

2026-10-21 10:37:00 352 1

原创 面向对象高级(多态与鸭子类型)

本文探讨Python中多态与鸭子类型的实践。通过handler_charge函数展示继承关系下的多态,实现统一接口调用不同子类行为;而go_swimming函数则揭示鸭子类型:只要对象具备swimming()方法,即可被接受,无需继承。尽管编辑器提示“应为Duck但实际为Dog”,但运行正常,凸显静态类型检查与动态执行的差异。通过引入typing.Protocol定义行为契约,既消除告警,又保留类型安全,真正实现“只关心能做什么,不关心是什么”。

2026-10-21 10:31:30 306 1

原创 面向对象高级(多继承)

本文通过问界汽车的多继承案例,揭示Python多继承中的关键陷阱:子类同时继承两个父类时,方法与构造函数的调用顺序由MRO(方法解析顺序)决定,优先使用第一个父类的实现。若不重写__init__和run,默认行为可能隐性出错——如参数传递不报错却导致属性缺失,造成难以察觉的数据错误。正确做法是显式调用各父类的初始化方法,并在重写方法中分别调用所需父类方法,避免依赖super()的单一路径。强调:多继承中“不报错”≠“正确”,必须通过__dict__验证属性完整性。

2026-10-20 19:57:04 144 1

原创 面向对象高级(继承与方法重写)

空子类可直接继承父类方法,验证了继承的自动性;重写时可通过super().charge()或Car.charge(self)调用父类逻辑,前者自动传self,后者需手动传递;私有属性__owner虽在实例中存在(改名为_Car__owner),但子类无法以原名访问,说明私有成员“继承但不可见”,而非未继承。

2026-10-20 19:52:31 337 1

原创 面向对象高级(封装)

本文通过一辆车的类设计,深入讲解Python封装的核心:用双下划线__实现属性与方法的“伪私有”,防止外部直接访问。虽可通过_类名__属性名绕过(名称改写),但真正意义在于控制访问方式——如提供get_owner()脱敏接口,实现数据安全与逻辑统一。同时指出静态方法与实例方法的选择应基于是否使用self,体现封装的严谨性。

2026-10-20 19:49:14 274 1

原创 数据分析(案例实战)

本文基于TMDBTop300电影数据,设计一张2×2四宫格可视化报表。通过折线图展示年度上映趋势,柱状图对比语言与类型分布,饼图呈现评分占比,结合数据清洗、缺失补全、多值拆分与坐标轴对齐等技巧,实现精准统计与美观布局。最终采用plt.subplots构建画布,配合tight_layout留白,完成可复用的数据分析流水线:读取→清洗→统计→绘图→美化→输出,强调“数据质量”决定报表可用性。

2026-10-19 16:47:45 1001 1

原创 数据分析(图表实战)

本文使用plt.subplots()创建一行两列的子图,左侧绘制世界主要石油储备国的柱状图,右侧展示其人口比例饼图,并通过设置中文字体、美化坐标轴与图例、添加网格线及标注百分比等细节提升可视化效果。重点解析了多子图操作中axes[0]与axes[1]的索引使用、pie()返回值与图例匹配、savefig必须在show()前调用等关键技巧,最终将图表保存为data/01.png,实现高效复用。

2026-10-19 16:39:22 222 1

原创 数据分析(图表信息详解)

本文通过对比2026年10月19日上海与福州逐小时温度,完整演示如何用Matplotlib制作可展示的折线图。通过设置中文字体、添加标题、坐标轴标签、图例、网格线及数据点标记,解决了中文乱码、信息缺失等问题,使图表具备清晰表达能力。重点强调plt.rcParams配置字体、label与legend配合使用、plt.xticks精确刻度等关键技巧,避免常见踩坑,最终生成一张专业、易读的可视化图表。

2026-10-19 16:36:31 261 1

原创 数据分析(Matplotlib入门)

本文记录了使用Matplotlib绘制折线图的入门实践。通过最小化代码实现从1到10的平方数折线图,掌握三步核心操作:导入plt、plt.plot(x,y)绘图、plt.show()展示。随后尝试用随机数生成波动折线,直观理解数据可视化本质。过程中踩坑:遗漏show()无图显示,x/y长度不等则报错,强调数据一致性与show()必要性。初学阶段,清晰结构与基础规范是关键。

2026-10-19 16:33:03 171 1

原创 Python基础语法练习题(72)

本文实现了一个结构清晰的学生成绩管理系统,通过Student类与StudentGradeManager类分工协作:前者管理学生信息及成绩计算,后者负责学生增删查与成绩维护。系统采用字典存储学生数据,确保操作安全;输入环节加入校验与循环,防止无效输入;主程序以菜单形式提供交互,支持添加学生、记录成绩、查询平均分及查看汇总,具备良好的可扩展性与健壮性。

2026-10-17 21:34:05 294 1

原创 Python基础语法练习题(71)

本文通过银行账户类的两次迭代,诠释了面向对象编程中“封装”的核心价值。原始版本通过方法控制余额修改,实现数据保护;优化版本引入账号密码验证、菜单交互与输入校验,提升安全性与用户体验。关键改进包括:用verify()实现身份认证、get_amount()统一处理金额输入、try-except捕获异常避免程序崩溃,并重构get_balance()使其职责单一。代码结构更清晰,逻辑更健壮,真正实现了“对象自己管好自己”。

2026-10-17 21:30:55 297 1

原创 数据分析(数据分组)

本文通过Python pandas实现数据分组分析,以“产品类别”为分组依据,统计订单数、销售数量、销售额及单价的最值与均值。核心思路为“分组—套娃—汇总”,运用groupby的split-apply-combine模式,结合向量化运算计算销售金额,并采用agg和命名聚合等进阶方法,高效生成结构清晰、可直接汇报的分析结果。

2026-10-15 18:07:33 713 1

原创 数据分析(数据排序)

本文通过pandas的sort_values方法实现订单表多维度排序。核心思路:用by指定排序列,ascending控制升序或降序。支持单列倒序(如销量从高到低)、升序(如单价从低到高),以及多列复合排序——先按单价升序,再按销量降序,优先级由列表顺序决定。为便于观察,仅读取前10行数据,提升演示直观性。代码简洁高效,体现“一行代码解决复杂排序”的Python数据分析优势。

2026-10-15 18:04:53 404 1

原创 数据分析(数据清洗)

本文分享了数据清洗的四类核心问题:缺失值、重复值、异常值与格式错误。通过isnull()定位缺失,用dropna()或fillna()处理;以duplicated()和drop_duplicates()去重;用条件筛选发现负单价异常,选择删除或取绝对值修复;最后使用str.replace()统一日期格式。强调“先查后治”,注重方法选择与批量处理效率,实现数据质量提升。

2026-10-15 18:03:31 298 1

原创 数据分析(数据过滤)

本文梳理了Pandas数据过滤的核心逻辑:本质是生成一列True/False的“是否清单”,仅保留True行。总结三类场景:1)单条件比较(如df[‘数量’] >= 10);2)多值匹配用isin()(如[‘食品’, ‘图书’]);3)多条件组合用&(且)或|(或),且每个条件需加括号,避免运算符优先级错误。简洁高效,掌握即可灵活筛选数据。

2026-10-15 17:55:10 312 1

原创 数据分析(数据查询与选择)

拿到新数据后,通过六个固定“体检动作”快速掌握数据全貌:用head()和tail()检查数据格式与错位;describe()查看数值列统计概览,识别异常值;info()获取每列非空数、类型及内存占用,定位缺失值;shape和columns确认行列数与列名;通过[]选列(单列得Series,多列需双括号);用loc和iloc选行,注意loc支持标签与切片包含结尾,iloc仅按位置索引。

2026-10-13 19:53:19 166 1

原创 数据分析(数据读取与写入)

本文通过处理600多行真实销售数据,学习Pandas读写文件的实用技巧:使用usecols在读取时过滤列,节省内存;通过向量化运算直接计算“销售金额”,无需循环;最后用to_csv(index=False)保存结果,避免多余索引列。强调编码判断应以程序输出为准,而非肉眼查看文件。

2026-10-13 19:50:38 200 1

原创 数据分析(DataFrame与series)

本文介绍了Pandas中创建DataFrame与Series的四种方式。DataFrame可通过列表套字典(按行)、字典套列表(按列)、二维列表加列名、或自定义行索引等方式构建;Series则可由列表、元组、字典或从DataFrame抽取一列生成。文中还梳理了常用属性如.index、.columns、.values、.shape、.dtypes等,强调.tolist()是将数据转回原生Python结构的“出口”。核心记忆点:DataFrame是升级版字典,Series是升级版列表,行索引为“名字”,.tol

2026-10-13 19:48:31 114 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除