网易首页 > 网易号 > 正文 申请入驻

人工智能通识课:Python 编程风格与语法基础(辅助篇)

0
分享至

掌握基本语法后,还需要理解一些容易混淆的程序行为:为什么代码尚未执行就报错,为什么复制数据后原记录也发生变化,为什么同一段程序换个环境便找不到文件?通过对照实例分析这些现象,可以加深对执行过程、数据表示和对象关系的理解。

一、Python 与程序运行

1.1 语法检查与运行时错误

语法检查与实际执行发生在不同阶段。直接运行普通源文件时,文件自身的语法错误通常会阻止该文件开始执行;运行时错误则可能在前面的语句已经产生结果后出现。

交互解释器按提交的代码单元处理输入。前面已经执行的操作,不会因为后续输入出现语法错误而自动撤销。判断错误影响范围时,应结合代码的提交和运行方式。

1.2 字节码与操作观察

常见的 CPython 实现会将源代码编译为字节码,再执行相应操作。标准库 dis 提供反汇编功能,可以观察源代码与字节码之间的对应关系。

这一内容可以在学习函数定义后选学,重点理解数据读取、计算和结果返回之间的联系,无须背诵具体指令。

字节码属于具体实现的细节。解释程序功能时,仍应以源代码的语言规则和实际执行结果为依据。

1.3 Notebook 的运行状态

Jupyter Notebook 的代码单元共享内核(Kernel)中的运行状态。变量是否存在、当前保存什么值,取决于已经执行过的代码,而不只取决于页面当前显示的内容。

删除单元中的赋值语句,也不会自动删除此前创建的变量。核验完整结果时,应重启内核并按顺序运行全部单元,确认结果能够由当前代码重新得到。

二、Python 代码组成与编程风格

2.1 名称是否已经建立

名称能否使用,取决于当前执行过程中是否已经建立相应绑定。某个赋值语句即使出现在源代码中,也可能因为所在分支未被执行而没有产生作用。

阅读条件结构时,除了检查哪些语句会执行,还应检查后续使用的名称是否在所有相关路径中都有定义。函数中的名称查找与作用域规则将在后续展开。

2.2 赋值目标与求值顺序

解包赋值会先计算右侧表达式,再按位置将各个元素赋给左侧目标。这一顺序可以用于交换值,也能解释为什么某些连续赋值会得到不同结果。

增强赋值会结合对象类型完成更新。对于可变对象,它可能直接修改原对象,因此不能把所有增强赋值都简单视为创建新对象。

print(scores is backup)  # False

2.3 文档字符串的位置与读取

文档字符串(Docstring)需要位于模块、类或函数主体的第一条语句位置,才能成为相应对象的文档。三引号也可以用于普通文本,作用取决于所在位置。

注释和文档字符串需要随程序修改同步更新。检查大模型生成的代码时,应将说明与实际条件、计算范围及返回结果对应起来,避免仅根据注释判断程序行为。

三、基本数据类型与运算

3.1 相对容差与绝对容差

常见 Python 实现中的浮点数采用有限精度的二进制表示,许多十进制小数只能近似存储。因此,计算结果可能存在微小偏差,判断数值是否足够接近时,需要结合任务允许的误差。

近似比较需要根据任务要求设定容差。相对容差衡量差异相对于数值大小的比例,绝对容差限定固定差值,尤其适合比较接近零的结果。

容差应结合数据单位、测量精度和允许误差确定。容差过宽可能接受不合理偏差,过窄则可能将正常的计算误差判断为失败。

3.2 十进制表示与计算精度

需要按照十进制规则表示和计算时,可以使用十进制数类型 Decimal。从字符串构造数值,可以避免先经过二进制浮点近似。

十进制计算也受到有效数字精度和舍入规则约束,并非所有运算都能得到精确结果。

    

整数、浮点数与十进制数各有适用条件。选择类型之前,应明确数据含义、计算方式与精度要求。

3.3 反向切片与默认边界

反向切片需要同时考虑起点、终点和步长。步长为负时,访问位置逐步减小,终点仍不包含在结果中。

省略终点与显式填写负索引可能得到不同结果。省略终点会采用适合反向遍历的默认边界;显式负索引则按照序列长度解释。

切片通常会将越界范围限制在有效区间内。因此,切片成功不能证明输入长度满足任务要求。

print(len(student_id) == 3)  # False,不符合三位编号约定

3.4 默认值与缺失判断

使用逻辑或设置默认值,会替换所有表现为假的输入。若合法数据也可能为零或空容器,就需要使用更明确的缺失规则。

    

字典默认值还需要区分“键不存在”和“键存在但内容为空”。

print(record["成绩"] is not None)  # False,内容尚未提供

3.5 统计对象与比较边界

计算结果的含义取决于统计对象。三名学生的成绩形成群体均值,一名学生的三科成绩形成个人总分与科目均分,解释时需要保留这种区别。

“高于”与“不低于”对应不同边界。选择恰好等于阈值的样例,可以检查比较规则是否被正确表达。

四、组合数据类型与对象引用

4.1 嵌套容器的复制范围

浅复制(Shallow Copy)创建新的外层容器,但内部对象仍可能共享。对于嵌套数据,需要分别检查修改发生在哪一层。


图 4-1:嵌套容器中的共享引用

内容相等不能证明对象相同,外层对象不同也不能证明内部数据完全独立。阅读复制操作时,应沿引用关系逐层检查。

4.2 深复制与局部复制

深复制(Deep Copy)会递归复制此类嵌套容器,使内部数据可以独立变化。

如果只有部分数据需要修改,也可以只复制相应的内部容器,明确隔离范围。

复制方式应结合对象类型、修改范围和资源成本选择。文件、连接等资源具有额外状态,不能简单理解为普通容器中的可复制数据。

4.3 序列重复与内部共享

序列重复操作会重复元素引用。如果元素本身是可变对象,多个位置可能引用同一个内部容器。

发现多处数据同时变化时,可以先检查它们是否引用同一个可变对象。对象共享关系取决于构造和赋值过程,不能仅凭显示内容判断。

五、模块与项目环境

5.1 安装信息与加载位置

分发包(Distribution Package)是安装工具管理的软件单元,模块是导入系统加载代码的单位。一个分发包可以提供多个模块,安装名与导入名也可能不同。

排查导入问题时,应结合解释器位置、安装信息和模块加载位置进行判断。

本地同名文件可能干扰模块查找。确认导入成功后,还应检查加载的是否为预期模块。

5.2 工作目录与脚本目录

相对路径通常以当前工作目录为参照。脚本保存在某个文件夹,并不意味着程序也从该文件夹启动。

当材料与脚本一起组织时,可以根据脚本位置构造路径,明确它们之间的位置关系。

从不同目录启动同一脚本,可以观察路径参照的差别。文件找不到时,应先确认程序实际查找的位置,再检查材料是否存在。

5.3 模块发现与导入验证

模块能够被找到、能够被导入,以及能够完成所需操作,是三个不同层次的检查。

不同开发工具得到不同结果时,可以对照解释器、工作目录和模块位置。这些信息有助于区分环境选择错误、文件命名冲突和依赖缺失。

六、大模型代码的阅读与应用

6.1 完整任务与独立预期

单条登记信息预览可以将文本清理、类型转换、容器组织和输出格式连接起来。先使用程序内的虚构材料,便于独立核对处理结果。

可以向大模型提出以下请求:

请使用 Python 编写一个登记信息整理与成绩预览程序。输入直接写在程序中:学号为 "001",姓名为 " 张三 ",数学、英语和物理成绩分别为 "85"、"90"、"88",来源文件名为 "登记表01.docx"。

学号保留为文本,姓名清除两端空白,原始记录保持不变。三科成绩转换为整数,计算总分和平均分,并按学号、姓名、数学、英语、物理、总分、均分、来源文件的顺序显示,均分保留一位小数。

仅使用 Python 内置功能,在注释中说明关键步骤和输入前提。当前假定姓名清理后非空,成绩均为零到一百的合法整数字符串。不读取、写入或覆盖文件。

运行前,先手工确定预期:学号保持为“001”,姓名整理为“张三”,总分为 263,均分显示为 87.7。来源文件名作为记录中的标识保留,不表示程序实际读取了该文件。

6.2 完整实现与数据追踪

下面的实现将原始输入与整理结果分别保存,便于对照。阅读时重点追踪类型变化、统计范围和字段对应关系。

核验时,除了总分与均分,还应检查学号前导零、姓名清理、来源标识和输出列序。列数相等只说明数量匹配,还需要确认每个值与表头含义对应。

6.3 修改范围与关联结果

先只将物理成绩从 "88" 改为 "80"。预期总分减少 8,变为 255,均分显示为 85.0;学号、姓名和来源应保持不变。

增加字段时,应先判断它是否参与计算。增加籍贯主要影响数据保存和输出;增加一门课程还会改变统计范围。

只修改显示文字,或只增加表头,都可能留下未同步更新的处理步骤。修改后应同时核对新增结果与需要保留的行为。

6.4 输入变化与失败阶段

边界练习应将输入变化与处理阶段对应起来。类型转换、业务范围和内容完整性需要分别检查。

前面的完整程序尚未自动检查成绩范围。将成绩改为 "120" 时,它仍会计算;改为空文本时,则会在整数转换阶段报错。解释清楚失败位置,才能提出有针对性的修订要求。

6.5 反馈修订与回归检查

可以将发现的问题转化为具体反馈:

将物理成绩改为 "120" 后,程序仍计算并显示了总分。成绩应在零到一百之间,预期应指出无效字段,并停止生成该条成绩结果。请补充检查,保留原始记录和学号前导零,并在注释中说明修改位置。

修订后重新检查原有功能,称为回归测试(Regression Testing)。拒绝 120 分之后,还应确认 0 分和 100 分仍被接受,正常输入的总分、均分和输出顺序保持正确。

保留修改目的、测试输入、预期行为、实际结果与未覆盖情况,可以为后续检查提供依据。完整的分支、异常处理和函数封装将在后续展开,这里先建立输入变化与程序结果之间的可检查联系。

小结

执行状态、求值顺序、数值精度与嵌套引用,会影响程序的实际行为。结合环境诊断、完整案例和修改对照,可以追踪问题来源,并通过独立预期、边界样例与回归检查核验修订结果。

“点赞有美意,赞赏是鼓励”

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
“大衣哥”朱之文遭黑粉举报演出被取消,已回家种地,喊话黑粉:我不欠你的,你惹我,这次绝不放过你

“大衣哥”朱之文遭黑粉举报演出被取消,已回家种地,喊话黑粉:我不欠你的,你惹我,这次绝不放过你

韩小娱
2026-10-26 18:10:14
江苏七旬老兵18棵养老树被砍,五次赴省反映后被送派出所

江苏七旬老兵18棵养老树被砍,五次赴省反映后被送派出所

报人老张
2026-10-27 10:50:51
《颜之有物》|红魔12 Pro+

《颜之有物》|红魔12 Pro+

爱活网Evolife
2026-10-26 18:58:34
河南一小区有人在电梯内虐猫,住户称是一对母子,男子手撑电梯借力,踩踏猫身长达5分钟;警方已介入调查

河南一小区有人在电梯内虐猫,住户称是一对母子,男子手撑电梯借力,踩踏猫身长达5分钟;警方已介入调查

扬子晚报
2026-10-27 09:48:24
康宁股价最新下跌2.7%

康宁股价最新下跌2.7%

每日经济新闻
2026-10-27 21:52:17
你的智齿还在吗?最新研究:别嫌智齿是「多余的牙」,它是干细胞「仓库」!不仅能修复神经,减轻阿尔茨海默病脑损伤,还像神经元一样放电

你的智齿还在吗?最新研究:别嫌智齿是「多余的牙」,它是干细胞「仓库」!不仅能修复神经,减轻阿尔茨海默病脑损伤,还像神经元一样放电

梅斯医学
2026-10-26 07:56:09
冯德莱恩脸色难看:越南给欧盟上了一课:什么叫 “中国力量”

冯德莱恩脸色难看:越南给欧盟上了一课:什么叫 “中国力量”

经纬戎韬
2026-10-27 00:47:13
南京颐和路街区实行24小时禁商拍

南京颐和路街区实行24小时禁商拍

新浪财经
2026-10-27 16:01:31
姆巴佩事件升级,品牌切割只是开胃菜,官方下场,樊振东被牵连

姆巴佩事件升级,品牌切割只是开胃菜,官方下场,樊振东被牵连

秋姐居
2026-10-27 16:50:20
U15世界杯赛程更新!国足进入第二档,排位赛首战对决伊朗

U15世界杯赛程更新!国足进入第二档,排位赛首战对决伊朗

我想把最好的一面展现给你
2026-10-28 09:05:38
美俄全都没料到,三方会谈还没开始,先被泽连斯基反将了一军!

美俄全都没料到,三方会谈还没开始,先被泽连斯基反将了一军!

千羽解读
2026-10-27 19:07:19
西媒:亚马尔父亲在机场与人发生冲突,并向他人吐口水+拳击

西媒:亚马尔父亲在机场与人发生冲突,并向他人吐口水+拳击

懂球帝
2026-10-28 08:58:05
张雪到重庆大学“打招聘广告”,入职后年薪10万起,学生:听说一年后大部分能涨薪20%,很多人感兴趣

张雪到重庆大学“打招聘广告”,入职后年薪10万起,学生:听说一年后大部分能涨薪20%,很多人感兴趣

先锋新闻
2026-10-27 09:28:58
晨起喝温水是错的?医生苦劝:不想住进医院,晨起喝水牢记5点

晨起喝温水是错的?医生苦劝:不想住进医院,晨起喝水牢记5点

健康之光
2026-07-30 20:15:03
三分6中5!CBA又一失意人换队腾飞 当初未被用好?

三分6中5!CBA又一失意人换队腾飞 当初未被用好?

体娱天下
2026-10-28 08:03:39
文科讲师年薪10万,却被摊派70万横向经费,领导暗示“可以抵押房子充值”!大学老师自费上班,只为保住一个教职

文科讲师年薪10万,却被摊派70万横向经费,领导暗示“可以抵押房子充值”!大学老师自费上班,只为保住一个教职

学术眺望
2026-10-27 07:30:03
省委书记会场示意我离场,中央调令送达后,全场震惊我赴京城履新

省委书记会场示意我离场,中央调令送达后,全场震惊我赴京城履新

千秋文化
2026-09-26 20:24:16
姆巴佩迎来全网骂潮,是因为他触及了,中国球迷的“3个底线”

姆巴佩迎来全网骂潮,是因为他触及了,中国球迷的“3个底线”

观锐器
2026-10-27 14:10:38
富豪榜大变天!雷军、马云、黄峥跌出前十,梁文锋排第七

富豪榜大变天!雷军、马云、黄峥跌出前十,梁文锋排第七

大厂财经社
2026-10-28 01:56:20
马院暴增至1440家!不包分配的毕业生,都去哪了?

马院暴增至1440家!不包分配的毕业生,都去哪了?

户外阿毽
2026-10-26 13:34:03
2026-10-28 09:47:00
MediaTea
MediaTea
专业的数字媒体、新媒体技术
2257文章数 85关注度
往期回顾 全部

科技要闻

M6芯片版14英寸MacBook Pro:15999元起

头条要闻

牛弹琴:博索纳罗败选携妻女"流亡"美国 卢拉气得大骂

头条要闻

牛弹琴:博索纳罗败选携妻女"流亡"美国 卢拉气得大骂

体育要闻

悲惨!杰威重伤倒下 最好的雷霆已成过去?

娱乐要闻

芒果遇到厉娜和许飞笑发财了!

财经要闻

解密 “速成车”:一辆车怎样更快造出来?

汽车要闻

纯电续航1003km 大五座SUV腾势N8正式开启预订

态度原创

艺术
时尚
旅游
房产
家居

艺术要闻

寒江不只有孤隐,风雪里有一秤人间 —— 读朱邦《丰溪渔隐图》

「初代恶女」的选择:比起做母亲,我更想先做自己

旅游要闻

对话首旅如家孙坚:承续民族品牌历史积淀,“建国里”打造北京城市副中心精彩生活集结地

房产要闻

从全国第一跌到第七!海南人,放下生娃焦虑!

家居要闻

2026建博会(广州) 公装联探展交流活动

无障碍浏览 进入关怀版