内容提要
本文介绍了作者学习Python编程的经历和基础知识,包括数据类型、分支循环和函数调用。还提到了Python的特性和数据类型运算符。最后讨论了分数型数据类型和运算符优先级。
延伸解读
从“理解透”到“写出来”:学习笔记的自我检验
作者将“用自己的话表达”设为最高目标,这比单纯跑通代码更能检验是否真正理解。文中对函数调用、数据类型转换的梳理,以及用类试验源码展示输出,都是把书本知识转化为个人表述的尝试。读者可借鉴这种“复述+验证”的方式,避免停留在似懂非懂的状态。
方法调用是否改变对象:一个易忽略的细节
文章指出,点操作符调用的方法有的只返回对象状态(如数量、最值),有的会改变对象本身(如排序、改大小写)。这一区分直接影响代码逻辑:若误以为排序方法返回新列表而原数据不变,后续操作可能出错。学习时留意方法文档中的“原地修改”说明,能减少隐蔽bug。
分数型数据类型的设想:精度与算力的权衡
作者提出用“1..3”表示三分之一的分数型数据,核心是通分与约分,可避免浮点误差,但会增加计算步骤。文中也承认,只有算力廉价时这种牺牲步数换精度的方法才可能被大量使用。这提醒读者:数据类型的选择本质是精度、效率与实现复杂度的权衡,而非单纯追求“更精确”。
运算符的“口语化”与边界行为
文章提到Python运算符接近自然语言(如and、or、not、in),同时指出整式除法//取不大于商的最大整数,因此-1//3=-1。这类边界行为容易在负数运算中出错。学习时不仅要记住符号,还要通过具体例子验证语义,尤其是取模、整除和自加运算的细微差别。
Q&A
Python中如何调用对象的方法?
使用点操作符(.)调用对象的方法,例如 data.sort(),其中点左侧是被操作的对象,右侧是所使用的方法。
Python中哪些方法会改变对象状态,哪些不会?
有些方法仅返回对象的状态(如数量、数据类型、最值等),不改变对象状态;有些方法则会改变对象状态,例如重新排序、更改大小写等。
Python有哪些主要的数据类型?
Python的主要数据类型包括整型、浮点型、字符型和布尔型。
作者设想的分数型数据类型是什么?
作者设想用两个点表示分子分母,如1..3表示1/3,占用两个整型空间。计算时若参与运算,整型变为k..1,浮点变为abcd...1000,全程分数运算,必要时转为浮点或整型显示。核心是通分与约分,提高精度但增加计算复杂度。
Python中整式除法//和取模%有什么特点?
整式除法//得出的值是不大于商的最大整数,例如-1//3=-1;取模%运算也很有趣。
Python中分支和循环能解决什么问题?举例说明。
分支和循环可以解决任意复杂度的流程控制。例如if语句根据条件执行不同代码块,while和for循环用于重复执行。