大四网络工程转型 AI 应用开发:我的 5 个月自学计划(第二周)
从跟着敲到自己搭这一篇是第二周的记录。第二周我学的东西比第一周更硬集合、字典、函数、参数的几种传法、lambda、递归最后还写了两个完整的系统。上一篇发出去之后我说尽量每周更一篇。结果假期玩嗨了把这事落下了。一、集合和字典第一次觉得数据可以这么存第二周开头学的是集合和字典这两个容器是新的。集合最有意思的地方是不重复。我写了个练习四门选修课的学生名单要找出同时选了法语和艺术的人。我用的是fa_set french_set.intersection(art_set)老师还讲了简写是交集、|是并集、-是差集三个符号对应三个操作。有一道题卡了我一下找出选修了足球但没选篮球的人。我用差集写出来了但后来发现还有另一种写法only_fb {s for s in football_set if s not in basketball_set}同一件事有两种解法一个用集合运算一个用推导式。第一次感觉到原来代码不是只有一条路。字典让我印象深的是key 不能重复。我写了个例子dict1 {亡灵:670, 黎母王:608, 亡灵:770}打印出来只剩亡灵:770——后面把前面覆盖了。key 必须是不可变类型可以是字符串、数字、元组但是列表和字典不行。这句话我一开始只是记下来后来写学生成绩管理的时候才真正懂它的意思只要 key 不可变就能靠它快速找到对应的数据。这就是主键。二、手搓第一个系统学生成绩管理 CLI这是第二周最费劲的一件事。需求是用字典套字典的方式存学生信息要能增、删、改、查、求平均分。我一开始没感觉坐下来想了半天才想明白数据该怎么存{姓名: {学号: xxx, chinese: xxx, math: xxx, english: xxx}}外层字典的 key 是姓名value 又是另一个字典装着这个学生的具体成绩。想通了这一步后面就是一块一块往里填。中间卡住的地方是求平均分。我当时的思路是先拿到这个学生的信息再把三科加起来除以 3。道理很简单但我写的时候发现all_dict1[names]取出来的是一整个字典我怎么单独拿到里面的三科成绩卡了挺久后来试出来是可以再取一层values_dict1 all_dict1[names] avg (values_dict1[chinese] values_dict1[math] values_dict1[english]) / 3字典套字典取数据就要取两层。这一下我彻底理解了嵌套结构。还有一个让我印象深的点是修改功能。我原来写了两套一模一样的逻辑一个是有就改一个是没有就报错写得很长。后来我意识到一个问题all_dict1[names]拿到的字典和我改的那个字典是不是同一个东西我试了一下是的。修改values_dict1就等于修改all_dict1[names]因为它俩指向的是同一个字典对象。这个发现让我的代码短了一大截。三、函数从一堆代码变成一块一块第二周后半段开始学函数。第一道让我有感觉的题是求圆的面积和周长。以前我肯定是写一堆变量算来算去现在def circle_area_len(r): return round(3.14*r*r, 1), round(2 * 3.14 * r, 1)一次返回两个值。当时我还纳闷一个return怎么返回两个打印出来才发现原来它是把两个值打包成元组了al circle_area_len(10) # (314.0, 62.8)而且可以解包拆开len_s, area circle_area_len(10)。这个和第一周学的元组解包是同一个东西只是用在了返回值上。函数里还有一处我写了很久计算一个字符串里有多少个元音字母。def vowel_count(n): num 0 for m in n: if m in aeiouAEIOU: num 1 return num这里的关键是m in aeiouAEIOU——判断一个字符是不是在这串字母里。老师在课上讲的时候我觉得挺妙不用写十个or直接用一个字符串当检查表。四、参数位置、关键字、不定长函数参数这块第二周学了好几种传法。位置参数就是按顺序传。关键字参数是点名传顺序可以乱reg_stu(namezhong, age18, gendernan, cityguandong) reg_stu(age18, namezhong, cityguandong, gendernan)两行结果一样因为都点明了名字。然后是不定长参数这个是新的def calc_data(*args): min_data min(args) max_data max(args) avg_data round(sum(args) / len(args), 1) return min_data, max_data, avg_data*args的意思是把传进来的所有位置参数装成一个元组。所以我写calc_data(3, 4, 5, 67, 99)的时候args就是(3, 4, 5, 67, 99)。还有**kwargs对应的是关键字参数会装成一个字典。这两个我记的诀窍是一个星号装元组两个星号装字典。而且必须先写位置参数再写关键字参数写反了会报错。有一处我觉得挺有用的写法是在**kwargs里做可选配置if kwargs.get(print): print(f最小值{min_data}最大值{max_data})传了printTrue才打印不传就静静返回。这种可选开关的写法我以前没见过。五、lambda 和递归两个卡了一会儿的东西lambda一开始我不太理解它存在的意义觉得跟普通函数差不多。直到有一道题把一个字符串列表按长度排序。data_list.sort(key lambda data : len(data))这里的key不是让我给它结果而是让我告诉它按什么规则排。写完之后我愣了一下——前面学max()的时候我写过max(wg_dict, keywg_dict.get)。这两个是同一个套路函数不只是我给你数据你给结果还可以我告诉你怎么算。递归是第二周最后一个知识点也是我写得最认真的一个。老师讲阶乘一开始我没太懂。后来我没接着往下看而是在注释里把整个过程手动展开了一遍jc(10) 10 * jc(9) …………… jc(9) 9 * jc(8) ………… ... jc(2) 2 * jc(1) 2 * 1 2 jc(1) 1一层层拆到底再一层层往回算。写完之后我看懂了——递归就是先递进、再回归而且必须有终点。那个终点就写在代码第一行def jc(n): if n 1: return 1 else: return n * jc(n-1)没有n 1这一行函数会一直调用自己停不下来。六、最后第二周开头我写了个小练习找字典里分数最高的人。当时我写的是maxx 0 maxx_key None for s in wg_dict.keys(): if maxx wg_dict[s]: maxx wg_dict[s] maxx_key s遍历一遍边比边记。写是写出来了但代码挺长。过了两天再看我改成了top max(wg_dict, key wg_dict.get)一行。同一道题第一版六行第二版一行。中间隔了两天多学了几个函数。第一周的结尾我写过我最大的问题是会敲但不会设计——老师给好场景我能填语法但要我自己拆一个需求就卡住。第二周结束我不敢说这个问题解决了但确实有变化。学生成绩管理和购物车这两个系统从数据结构怎么定、菜单怎么摆、每个功能怎么写都是我一点点拆出来的。

相关新闻

C语言学习笔记(指针)

C语言学习笔记(指针)

指针:指向变量所使用的内存空间的地址 指针变量:一个变量专门用来存放另一变量在内存中数据的地址 (即指针),则它称为“指针变量”。我们可以通过访问指针变量达到访问内存中另一个变量数据的目的。(有时为了阐述方便, 将指针变量…

2026/10/10 9:14:54 阅读更多 →
3个月从纯前端到独立交付AI产品 | 给前端小白的AI转型路线图(收藏版)

3个月从纯前端到独立交付AI产品 | 给前端小白的AI转型路线图(收藏版)

本文作者分享了从纯前端独立交付完整AI产品的3个月转型经历,涵盖后端基础、数据库设计、AI接入实战、Agent工具调用等关键学习点。通过项目驱动、AI辅助学习的方式,逐步掌握Node.js、Prisma、DeepSeek API等技能,最终实现前端界面、后端API、…

2026/10/10 9:14:54 阅读更多 →
掌握AI智能体,小白也能月入过万:收藏这份进阶指南!

掌握AI智能体,小白也能月入过万:收藏这份进阶指南!

本文介绍了如何利用AI智能体(Agent)提升工作效率和收入。通过三个真实案例,展示了运营、Java工程师和行政人员如何通过学习和应用AI技术,实现职业突破和薪资增长。文章强调AI不是简单的工具,而是能够自动化工作流程的数…

2026/10/10 9:14:54 阅读更多 →

最新新闻

广工操作系统实验:Linux内核模块实操指南

广工操作系统实验:Linux内核模块实操指南

简介:本资源是广东工业大学操作系统课程配套的完整实验实践包,面向计算机专业本科生及操作系统初学者,聚焦进程调度、作业调度、主存管理与文件系统四大核心模块,助力理解内核级机制并提升系统编程能力。压缩包共12个文件&#xf…

2026/10/11 13:57:13 阅读更多 →
一文看懂 Open Event Theme:eventyay 开源活动平台标准主题的来龙去脉

一文看懂 Open Event Theme:eventyay 开源活动平台标准主题的来龙去脉

【免费下载链接】open-event-theme Open Event Standard Theme http://next.eventyay.com 项目地址: https://gitcode.com/gh_mirrors/op/open-event-theme 点击查看 免费下载 Open Event Theme 是开源活动平台 eventyay(Open Event)的标准主…

2026/10/11 13:57:13 阅读更多 →
MySQL data文件夹迁移实操:Windows与Linux避坑指南

MySQL data文件夹迁移实操:Windows与Linux避坑指南

简介:MySQL数据库的data文件夹默认位于/var/lib/mysql,当系统盘空间紧张、数据安全性要求提升或需要将存储调整到独立分区时,迁移数据目录便成为运维人员常遇的任务。这份PDF指南围绕此类场景,提供了从关闭Apache与MySQL服务、使用…

2026/10/11 13:57:13 阅读更多 →
基于Spring Boot与Hadoop的高校体育健康大数据管理系统设计

基于Spring Boot与Hadoop的高校体育健康大数据管理系统设计

这个选题有意思,是把传统的高校体育信息化管理系统,往大数据分布式计算的方向上推了一把。标题里几个关键词我都拆开看了——Spring Boot、Hadoop、体质监测、运动干预、设施调度,每一个单拎出来都是常见选题,但它们组合在一起&am…

2026/10/11 13:57:13 阅读更多 →
拼团旅游平台毕业设计:Spring Boot核心架构与拼团状态机实战解析

拼团旅游平台毕业设计:Spring Boot核心架构与拼团状态机实战解析

1. 项目概述 1.1 核心需求解析 拼团式旅游服务平台,名字听起来挺长,拆开看其实就两个关键词:拼团、旅游。拼团是社交电商里非常成熟的玩法——几个人凑成一个团,以低于单人价的价格拿下同一个商品或服务。旅游则是把这种玩法移植…

2026/10/11 13:57:13 阅读更多 →
关键词URL采集工具实战:从乱码链接中高效提取与去重

关键词URL采集工具实战:从乱码链接中高效提取与去重

简介:关键词URL采集工具是一套面向SEO优化、市场调研与数据挖掘从业者的自动化网址搜集方案,核心用途是依据指定关键词批量抓取搜索引擎结果页中的匹配链接,替代人工逐页翻找,降低时间成本。资源包共4个文件,以rar格式…

2026/10/11 13:56:13 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →