你有没有遇到过这种情况——同样一段代码,写了三遍、五遍,改一个地方就要找遍全文?每次改完还不确定有没有漏掉哪里,提心吊胆地点运行……
这不是你的问题,这是没用函数的问题。
今天这篇文章,我们用通义灵码 + VSCode,手把手带你搞懂 Python 函数,让你的代码从"意大利面条"变成"整整齐齐的收纳盒"。全程用 AI 辅助编程,零基础也能跟上,复制就能用。
🤔 先说说"不用函数"有多痛
假设你是一个小老板,每天要给不同的客户发报价单,每次都要计算:商品价格 × 数量 × 折扣 = 最终金额。
不用函数的写法长这样:
# 客户Aprice_a = 100quantity_a = 5discount_a = 0.9total_a = price_a * quantity_a * discount_aprint(f"客户A应付:{total_a} 元")# 客户Bprice_b = 200quantity_b = 3discount_b = 0.8total_b = price_b * quantity_b * discount_bprint(f"客户B应付:{total_b} 元")# 客户C……还要再写一遍
客户一多,代码就像裹脚布——又臭又长。改个折扣逻辑?每一处都要找、都要改,漏掉一个就出 bug。统计显示,这类重复代码导致的维护成本占项目周期的 47%。
函数就是解决这个问题的。
🛠️ 第一步:把 VSCode + 通义灵码装好
安装 VSCode
前往 code.visualstudio.com 下载适合 Windows 的版本,一路"下一步"安装完成即可。
安装通义灵码插件
打开 VSCode 之后,按照下面步骤操作:
- 1. 点击左侧竖排图标栏里的"扩展"图标(四个小方块的那个)
- 4. 安装完成后,左下角会出现通义灵码的图标,点击登录阿里云账号(个人版免费)
安装完毕后,你就拥有了一个随时待命的 AI 编程助手,接下来所有代码都让它帮你写。
💡 函数到底是什么?用大白话说清楚
函数就是一个可以反复使用的"代码盒子"。
你把一段逻辑装进这个盒子,给它起个名字,以后每次需要用这段逻辑,直接叫它的名字就行,不用再把代码重新写一遍。
就像你家的洗衣机——你不需要每次洗衣服都重新发明一台洗衣机,按一下"开始"就完事了。
Python 函数的基本结构长这样:
def函数名(参数1, 参数2):"""这里写函数的说明(可选)"""# 函数要做的事情写在这里return 结果 # 把结果"交出去"
- •
def 是"define(定义)"的缩写,告诉 Python:"我要定义一个函数了" - • 函数名自己起,见名知意就行,比如
calculate_total - • 参数就是"原材料",你给函数什么数据,它就处理什么数据
🚀 实战一:用通义灵码写你的第一个函数
新建项目文件
打开 VSCode,新建一个文件,命名为 my_functions.py,保存到桌面上的一个新文件夹里。
用 AI 提示词让通义灵码帮你写
点击 VSCode 左侧的通义灵码图标,打开对话框,输入下面这段提示词:
提示词:帮我写一个 Python 函数,用于计算报价单金额。输入参数是:商品单价、购买数量、折扣比例(比如九折就是0.9)。函数要返回最终应付金额,并且用中文注释解释每一行代码。
通义灵码会生成类似这样的代码:
# 定义计算报价单金额的函数defcalculate_quote_amount(unit_price, quantity, discount_rate):# 计算原价总额,将商品单价乘以购买数量 original_amount = unit_price * quantity# 计算折扣后的最终金额,将原价乘以折扣比例 final_amount = original_amount * discount_rate# 返回最终应付金额return final_amount# 示例调用代码if __name__ == "__main__":# 设置商品单价为 100 元 price = 100# 设置购买数量为 5 件 count = 5# 设置折扣比例为 0.9(表示九折) discount = 0.9# 调用函数计算最终金额 total = calculate_quote_amount(price, count, discount)# 打印输出最终应付金额print(f"最终应付金额:{total}元")
把这段代码粘贴到 010.py 文件里,然后按 Ctrl + F5 运行,终端里就会出现三位客户的金额结果。
🎯 实战二:带默认参数的函数——更聪明的版本
上面的函数每次都要手动填折扣,但实际上大多数客户都是九折,只有少数特殊客户才打其他折扣。这时候可以给参数设置"默认值"。
继续在通义灵码里输入提示词:
提示词:在上面的 calculate_total 函数基础上,给 discount 参数添加默认值 0.9(即默认九折),这样调用时如果不填折扣就自动按九折计算。同时增加一个参数 tax_rate(税率),默认值为 0(默认不含税)。用中文注释解释变化。
生成代码如下:
# 📌 升级版:带默认参数的报价计算函数# 💡 新增功能:不填折扣默认九折,支持含税价格计算defcalculate_total(price, quantity, discount=0.9, tax_rate=0):""" 计算最终应付金额(升级版) 参数说明: price : 商品单价(元) quantity : 购买数量(件) discount : 折扣比例,默认 0.9(九折) tax_rate : 税率,默认 0(不含税),含税填 0.13(13%税) """# 计算折后价 discounted_price = price * quantity * discount# 加上税费(税费 = 折后价 × 税率) tax_amount = discounted_price * tax_rate# 最终金额 = 折后价 + 税费 final_price = discounted_price + tax_amountreturnround(final_price, 2) # round() 保留两位小数,避免出现 0.999999 这种情况# ===== 不同调用方式对比 =====# 方式一:只填单价和数量,折扣和税率都用默认值total1 = calculate_total(100, 5)print(f"普通客户(九折不含税):{total1} 元") # 输出:450.0 元# 方式二:指定折扣,不含税total2 = calculate_total(100, 5, discount=0.8)print(f"VIP客户(八折不含税):{total2} 元") # 输出:400.0 元# 方式三:九折含税(13%增值税)total3 = calculate_total(100, 5, tax_rate=0.13)print(f"含税报价(九折含税):{total3} 元") # 输出:508.5 元
默认参数的妙处:最常用的情况不用每次都填,代码更简洁;特殊情况才指定参数,灵活应对各种需求。
🏆 实战三:函数返回多个值——一次搞定所有信息
有时候你不只想知道"最终金额",还想知道"节省了多少钱"、"税费是多少"。Python 函数可以同时返回多个值。
提示词:
提示词:修改上面的函数,让它同时返回三个值:最终应付金额、节省的金额(原价减去折后价)、税费金额。用中文注释说明如何接收多个返回值。
# 定义计算报价单金额的函数defcalculate_quote_amount(unit_price, quantity, discount_rate=0.9, tax_rate=0): # 修改:添加折扣默认值和税率参数# 计算原价总额,将商品单价乘以购买数量 original_amount = unit_price * quantity# 计算折扣后金额 amount_after_discount = original_amount * discount_rate# 计算含税最终金额,将折扣后金额乘以 (1 + 税率) final_amount = amount_after_discount * (1 + tax_rate)# 修改:计算节省的金额(原价减去折后价) saved_amount = original_amount - amount_after_discount# 修改:计算税费金额(折后价乘以税率) tax_amount = amount_after_discount * tax_rate# 修改:同时返回最终应付金额、节省金额和税费金额return final_amount, saved_amount, tax_amount# 示例调用代码if __name__ == "__main__":# 设置商品单价为 100 元 price = 100# 设置购买数量为 5 件 count = 5# 设置折扣比例为 0.9(表示九折) discount = 0.9# 修改:使用元组解包接收多个返回值 total, saved, tax = calculate_quote_amount(price, count, discount, tax_rate=0)# 修改:打印输出最终应付金额、节省金额及税费print(f"最终应付金额:{total}元,节省金额:{saved}元,税费金额:{tax}元")
⚠️ 常见问题速查
Q:运行报错 NameError: name 'calculate_total' is not defined函数定义必须在调用之前。确保 def calculate_total(...) 这段代码在 calculate_total(100, 5) 这行的上面。
Q:IndentationError: unexpected indent(缩进错误)Python 靠缩进区分代码层级,函数内部的代码必须统一缩进(用 Tab 键或 4 个空格)。VSCode 里复制代码后,按 Shift + Alt + F 可以自动格式化,一键修复缩进问题。
Q:函数运行了但什么都没输出检查有没有 print() 语句。函数里的 return 只是"返回值",不会自动打印,要看到结果需要在外面加 print(函数名(参数))。
Q:想让通义灵码帮我改代码,怎么操作?选中代码,右键点击"通义灵码",选择"解释代码"或"优化代码",AI 会直接给出修改建议并解释原因。
🎨 个性化定制:改成你自己的需求
上面的报价计算函数,你可以按照自己的业务场景调整:
- • 换成工时计算:把
price 改成时薪,quantity 改成工时数 - • 批量处理:用一个列表存所有客户数据,用
for 循环批量调用函数,几秒内处理几百条记录
想实现哪种需求,直接把需求描述告诉通义灵码,它会帮你生成对应的函数,你只需要理解逻辑、复制使用即可。
📊 学会函数,你的代码发生了什么变化
函数是 Python 编程里最重要的概念之一,掌握了它,你就从"写脚本"升级到了"写可复用的工具"。今天学的三个层次——基础函数、默认参数、多返回值——已经能覆盖日常工作中 80% 的场景。
结合通义灵码,你不需要记住所有语法,只需要描述清楚你想做什么,让 AI 生成代码,你来理解和调用。这才是 2025 年普通人用 Python 的正确方式。