双体软件精英产业学院 第31期 第四周学习博客

作者:赵彬宏 · 炽阳二部(AI二部)Book思议组 时间范围:2026.9.21 — 2026.9.27 发布平台:GitHub


本周学习收获

本周的节奏明显提上来了,从”处理数据”推进到”把代码打包成函数”,最后摸到了文件读写的门。整体可以分成三块:

  1. 元组、集合与类型转换(周一):这节课把几种容器摆在一起对比着讲,概念一下就清楚了——元组 tuple() 只能查询和切片,不能改;集合 set {} 天生去重,往里丢重复元素它也只留一个;列表则是既能查又能改。类型转换这块很实用:set(列表) 去重、list(集合) 还原成列表、tuple(列表) 与 list(元组) 互转,还有 s.split(",") 把字符串切成列表和 "-".join(列表) 把列表拼回字符串——这两个是处理”逗号分隔”这类数据的利器。

  2. 函数(周二):这是本周最大的收获。语法是 def 函数名(参数): 加上缩进的函数体,调用时写 函数名(实参)。三个要点:参数可以有默认值(def welcome(name, greeting="欢迎回家")),调用时不给就吃默认值;return 和 print 是两回事——return 是把结果交出去给调用方,print 只是往屏幕上打一下;以及 return a, b 这样用逗号能一次返回多个值,Python 会自动打包成元组。

  3. 作用域与文件读写(周四):作用域这块搞清楚了局部变量和全局变量的区别,函数里想改全局变量得先写 global 声明;还有个容易踩的点——列表、字典传进函数被改了,外面也跟着变,而数字、字符串传进去改了只影响函数内部。文件读写学到了 with open(路径, 模式, encoding="utf-8") as f: 这种写法,模式 "r" 读、"a" 追加,配合 f.read()、f.write() 就能把数据存到磁盘上,不再是一关程序就没了。

练习方面这周量也不小:周一做了分数段统计、电影列表(列表套字典)、单词词频统计;周二一口气写了 is_even()、max_of_three()、count_char()、make_model()、calculate() 五个函数,还有按业绩算奖金(返回等级和奖金两个值);后面又补了一个简化版的会员管理系统,包含添加、查找、批量删除、统计、评级五个函数。


遇到的难题与困惑

  1. return 和 print 一开始分不清:课堂示例里的函数都是直接 print 出结果,但练习题要求”返回”,我就习惯性地在函数里 print。后来才反应过来——函数只负责算出结果交出去,要不要显示由调用方决定,这样函数才能被反复复用。

  2. 批量删除时漏元素:写会员管理系统的 delete_member() 时,最开始直接 for m in members: 遍历,命中就 members.remove(m)。结果删掉一个之后列表长度变了,后面的人被跳过。改成遍历 members[:] 副本才解决——遍历副本、删原列表,就不会错位。

  3. 作用域”改不改动”的规律绕了挺久:同样是 a = a + 1,数字传进函数外面不变,列表传进去外面就变了。反复试了课堂那几个例子才明白,关键在于这个对象本身能不能被原地修改。

  4. 文件读取时光标的问题:f.read() 把内容读完之后再 for i in f: 循环,一行都读不出来——因为光标已经走到文件末尾了。这个坑踩了一次才记住,读过的文件要么一次性读完再用,要么重新打开。

  5. 集合打印出来的顺序是乱的:去重完直接打印,顺序跟输入的不一样。一开始以为是代码写错了,后来才知道集合本来就是无序的,要稳定的顺序得再转回列表或排序。


错题反思与总结

  1. “能跑通”和”写得对”之间还有距离:这周几个练习第一版都能出结果,但像批量删除那种”看起来没问题、实际漏数据”的情况,只有自己构造重复数据去测才会暴露。以后写完得多造几组边界数据自测,特别是空列表、重复元素、除数为 0 这类情况。

  2. 函数这块练得还不够:定义、调用、返回值都懂了,但把一段重复代码”抽成函数”这个动作还不熟练,写综合案例时还是容易把逻辑堆在一起。打算把之前的练习题回头重构成函数版本,专门练这个手感。

  3. 代码细节依然随意:变量名中英混用、命名不统一,偶尔还留多余符号。虽然不影响运行,但回头看要愣一下。下周起码把命名和注释统一一下,让代码能”自己说话”。

  4. 文件读写这块只跑了课堂示例:周四的 with open() 基本是跟着例子敲了一遍,配套的练习还空着没动。读写、追加、按分隔符解析这几步没有自己独立写过一遍,印象不深——数据能存进文件才算真正落地,这块下周必须补上。


下周学习计划

  • 技术方面:把周四空着的文件读写练习补完(读、写、追加、按分隔符解析),再用函数把之前的练习题重构成模块化版本,最后拿一个综合案例把”函数 + 列表字典 + 文件存储”串起来跑通。
  • 职场方面:继续练表达,在小组讨论中主动开口,把本周学的函数、作用域这两个点试着讲给别人听——能讲清楚才算真懂。
  • 习惯方面:保持每次练习单独归档的习惯,写完就跑一遍边界数据自测,周日固定产出本周学习博客。

本博客为「双体学习笔记」系列,按周更新,欢迎在评论区交流指正。

本文同步自 Study-Note · 查看原文 ↗

← 返回列表