Python 首段可运行代码与 AI 协作入门学习笔记
2026/8/3 1:56:17
网站开发
代码不是写出来好看的而是运行后能够验证的。Python 入门的第一段程序通常从print()开始但真正有价值的学习目标是逐步形成“明确需求—编写代码—运行验证—处理边界”的完整闭环。一、用 print 完成程序的第一次输出print()是 Python 最常用的输出函数可以输出字符串、数字、变量或多个值print(Hello, Python!) print(42) print(3.14) print(A, B, C)最后一行会输出A B C。当print()接收多个对象时默认使用空格分隔并在末尾换行。可以通过sep和end修改这两个行为print(A, B, C, sep-, end!) print(学习完成)输出结果为A-B-C!学习完成其中sep控制多个值之间的分隔符end控制一次输出结束时追加的字符。换行符\n、制表符\t也可以用于控制输出格式print(姓名\t年龄) print(第一行\n第二行)需要注意带引号的内容是字符串不带引号的名称通常会被解释为变量。若变量没有定义print(hello)会触发NameError如果只是想输出文字应写成print(hello)。二、理解常见报错第一段代码出现错误很正常重点是学会读取报错而不是盲目修改。报错常见原因排查方式SyntaxError引号未闭合、括号不匹配、使用中文符号检查报错行及其上一行NameError使用了尚未定义的变量或变量名拼错检查赋值语句和名称拼写TypeError对不兼容的数据类型执行操作查看参与运算的数据类型ZeroDivisionError除数为 0运算前检查分母FileNotFoundError指定文件不存在或路径错误检查路径并处理文件缺失情况程序能够运行只能说明语法基本可执行并不能证明结果正确。因此应先预测输出再运行并比较实际结果。三、注释应该解释“为什么”单行注释以#开头适合说明业务规则、复杂公式来源或当前实现的限制# 会员订单享受九折这是当前业务规则 final_price original_price * 0.9像x 5 # 给 x 赋值 5这样的注释只是重复代码没有提供额外信息。变量名清晰时应优先让代码本身表达含义。三引号包裹的内容本质上是多行字符串放在模块、函数或类的开头时会成为文档字符串docstring用于说明接口用途。它并不是 Python 专门的“多行注释”语法因此普通代码说明仍建议使用#。四、向 AI 下达精确指令生成式工具并不能自动知道隐含需求。相比“帮我写个程序”一条可执行、可验收的指令至少应包含五个要素任务目标程序具体要完成什么输入参数名称、类型和示例输出返回值或打印内容及其格式约束允许使用的库、边界规则和异常处理方式验收标准给出明确的测试输入与预期结果。例如模糊指令“判断一个数是不是质数”可以改写为使用 Python 3.10 编写函数is_prime(n)。输入为整数输出为布尔值小于 2 返回False其余数字检查 2 到其平方根范围内是否存在因数不使用第三方库。验收is_prime(2)、is_prime(17)返回Trueis_prime(9)返回False。精确指令不仅能提高生成质量也使结果具备客观的接收标准。如果需求没有明确非法输入如何处理工具只能自行猜测其实现很可能与真实意图不一致。五、如何判断代码是好是坏可以从四个维度检查一段代码可读性函数和变量名称能否表达含义可预测性相同输入是否稳定得到相同结果边界处理是否考虑空输入、非法类型、零值和文件缺失实现适度是否在简洁与清晰之间保持平衡。下面的函数虽然不复杂但名称、行为和验收用例都比较明确def count_positive(numbers): 返回列表中正数的数量空列表返回 0。 count 0 for number in numbers: if number 0: count 1 return count assert count_positive([1, -2, 3, 0]) 2 assert count_positive([]) 0但它仍然隐含了“列表元素均为数字”的前提。如果输入包含None或字符串比较操作会产生TypeError。究竟应该拒绝非法数据、转换数据还是跳过异常值必须由需求规格决定。六、AI 协作中的拒收意识工具返回代码后不应只看它是否简短而要检查是否满足需求。例如print(结果, 10 / 0)这段代码一定会发生除零错误应在运算前检查分母或者设计明确的异常处理逻辑。再如print(open(data.txt).read())它假设文件一定存在并且没有使用上下文管理器。更可靠的实现需要使用with open(...)同时根据需求处理文件不存在和编码错误等情况。代码的接收流程可以概括为对照任务目标检查功能是否完整对照输入和输出检查类型、格式使用正常值、边界值和异常值测试阅读变量名、注释和结构判断是否便于维护修改问题后重新运行全部测试。七、可复用的提示词模板以后让 AI 辅助编程时可以使用以下结构任务目标 编程语言与版本 输入类型与示例 输出类型与示例 约束库、性能、异常处理等 反例明确不要做什么 验收标准测试用例其中“反例”能够进一步减少误解。例如判断闰年时应明确不能只判断年份能否被 4 整除因为能被 100 整除但不能被 400 整除的年份不是闰年。总结从第一段print()程序开始需要建立的不只是语法记忆更是一套可靠的编程习惯理解输出参数和转义字符学会从报错类型定位问题用有价值的注释解释原因把模糊想法转换成包含目标、输入、输出、约束和验收标准的指令并通过边界测试决定代码能否接收。AI 可以快速生成代码但不能替代需求定义和结果责任。真正有效的协作不是“让工具把代码写完”而是人给出清晰规格、审查实现并用测试证明结果满足要求。