文章目录第三篇 Python核心语法与鸭子类型思想第6章 函数:代码复用的基础与鸭子类型的初体验6.1 什么是函数6.1.1 生活中的类比6.1.2 编程中的定义6.2 函数的基础语法与分类6.2.1 无参函数:固定逻辑的封装6.2.2 带参函数:通用逻辑的载体6.2.3 有返回值的函数:把结果还给你6.2.4 默认值参数:大多数情况用默认值6.2.5 不定长参数:数量不固定也能处理(1)`*参数名`:接收任意多个普通参数(2)`**参数名`:接收任意多个键值对参数6.2.6 动手练习:计算三门课成绩6.3 变量作用域:变量的有效范围6.3.1 全局变量和局部变量6.4 函数背后的鸭子类型6.4.1 核心思想:参数不挑类型,能用就行6.4.2 更通用的例子:打印长度6.4.3 鸭子类型给函数带来的好处6.5 本章小结第7章 类与对象:面向对象与鸭子类型的核心舞台7.1 万物皆对象:从生活中理解对象7.1.1 身边的对象7.1.2 从对象到类:提取共同特征7.2 类的定义与使用7.2.1 基础语法7.2.2 self是什么?7.2.3 完整示例:人类7.2.4 创建和使用对象7.3 模块:把代码分到不同文件7.3.1 导入模块的两种方式7.3.2 `__name__`特殊属性7.3.3 动手练习:客户积分回馈7.4 鸭子类型:面向对象的灵魂7.4.1 生活中的例子:支付方式7.4.2 代码实现:不用继承也能多态7.4.3 再举一例:动物叫7.4.4 鸭子类型的工程价值7.5 本章小结第8章 文件操作:数据持久化与类文件对象的鸭子约定8.1 文件的基本概念8.1.1 文本文件和二进制文件8.1.2 文件操作的基本流程8.2 文件的打开与关闭8.2.1 基础语法8.2.2 常用打开模式8.2.3 避免打开异常:用异常处理8.3 读文件的三种方式8.3.1 `read()`:读取全部内容8.3.2 `readline()`:读取一行8.3.3 `readlines()`:读取所有行到列表8.3.4 更推荐:for循环逐行读取8.4 写文件的两种方式8.4.1 `write()`:写入一个字符串8.4.2 `writelines()`:写入一个序列8.5 文件指针:控制读写位置8.5.1 `tell()`:查看当前指针位置8.5.2 `seek()`:移动指针位置8.6 其他常用函数8.7 综合案例:学生成绩文件8.8 鸭子类型的延伸:类文件对象8.8.1 什么是类文件对象8.8.2 例子:内存里的文件StringIO8.8.3 工程意义:通用的处理函数8.9 本章小结全篇总结:鸭子类型贯穿始终的Python第三篇 Python核心语法与鸭子类型思想很多初学者会问:鸭子类型是不是一个很难的高级知识点?其实不是。从你写下第一行Python代码开始,你就已经在使用鸭子类型了。Python的灵活、简洁、好用,本质上都源于「鸭子类型」的设计思想:不纠结一个东西「是什么类型」,只关心它「能不能做这件事」。就像判断一只动物是不是鸭子,不用查它的物种标签,只要它走路像鸭子、叫声像鸭子,我们就可以把它当鸭子来用。本篇我们会沿着「函数 → 类与对象 → 文件操作」的入门路径,先把每一个基础语法学扎实,再带你看懂每一个语法背后的鸭子类型逻辑。你会发现:Python的灵活不是凭空来的,而是一以贯之的设计思想。第6章 函数:代码复用的基础与鸭子类型的初体验函数是编程中最基础的「代码封装工具」:把重复使用的逻辑打包起来,起个名字,下次用的时候直接喊名字就行。这一章我们先从零基础学会函数的所有基础用法,再带你理解:为什么Python的函数不用声明参数类型?这份灵活的背后,就是鸭子类型的第一次登场。6.1 什么是函数6.1.1 生活中的类比你可以把函数想象成一台「自动榨汁机」:你放进去水果(输入数据)机器按固定流程榨汁(执行代码)最后流出果汁(输出结果)