news 2026/2/28 4:18:19

Python全栈入门到实战【基础篇 15】函数基础:内置函数调用 + 自定义函数(定义/参数/返回值)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python全栈入门到实战【基础篇 15】函数基础:内置函数调用 + 自定义函数(定义/参数/返回值)

哈喽各位小伙伴!前面咱们吃透了循环、条件判断、复合数据类型,能写出处理单一任务的代码——但实际开发中常会遇到这样的问题:

  • 验证手机号格式的逻辑,在“用户注册”和“数据清洗”场景都需用到,重复编写不仅冗余,修改时还需同步更新多处;
  • 计算成绩等级的规则调整后,所有涉及该逻辑的代码都要逐一修改;
  • 代码规模扩大后,循环与判断语句交织,排查问题时需逐行检索,维护成本极高。

这些问题的核心,是缺少“代码封装复用”的能力——而Python的函数(Function)正是解决该问题的核心方案。函数能将“完成特定功能的代码段”封装为可调用模块,使用时仅需一行代码调用,无需重复编写逻辑,如同将常用工具收纳于工具箱,取用便捷且结构清晰。

本节将系统讲解函数的核心用法,覆盖内置函数与自定义函数的全场景应用:

  • 内置函数:Python自带的基础工具集(len()/range()/enumerate()等);
  • 自定义函数:封装专属业务逻辑(定义语法、参数设计、返回值处理);
  • 函数参数:位置参数、关键字参数、默认参数、可变参数(覆盖绝大多数开发场景);
  • 核心特性:作用域规则、返回值机制、函数调用流程;
  • 常见问题:参数传递错误、返回值遗漏、作用域混淆等问题的解决方案。

掌握函数的使用,能让代码从“零散执行”升级为“模块化复用”,大幅提升代码的简洁性与可维护性。

文章目录

  • 一、前置引入:为什么需要函数?
  • 二、基础中的基础:内置函数(Python自带的“工具集”)
    • 1. 基础操作类(高频使用)
      • 示例:基于内置函数的简单交互
    • 2. 序列操作类(处理列表/字符串常用)
      • 示例:基于内置函数的成绩分析
    • 3. 类型转换类(解决类型不匹配问题)
      • 示例:解决类型不匹配问题
    • 4. 内置函数调用规则
  • 三、核心重点:自定义函数(封装专属逻辑)
    • 1. 自定义函数的定义语法
      • 各部分说明
      • 完整示例:成绩等级判断函数
    • 2. 函数的核心要素:参数(输入数据)
      • (1)位置参数(基础类型)
        • 示例:两数求和函数
      • (2)关键字参数(增强可读性)
        • 示例:用户信息打印函数
      • (3)默认参数(可选输入)
        • 示例:带默认值的成绩等级判断
      • (4)可变参数(灵活接收多参数)
        • 示例1:`*args`实现任意个数求和
        • 示例2:`**kwargs`实现任意用户信息打印
    • 3. 函数的核心要素:返回值(输出结果)
      • (1)无返回值(默认返回None)
        • 示例:无返回值函数
      • (2)返回单个值
        • 示例:计算圆的面积
      • (3)返回多个值
        • 示例:计算矩形的周长与面积
      • (4)`return`终止函数执行
    • 4. 函数的调用
      • 完整流程示例:手机号验证函数
  • 四、函数的核心特性:作用域(变量生效范围)
    • 1. 局部作用域(函数内部)
        • 示例:局部变量的作用域
    • 2. 全局作用域(函数外部)
      • (1)读取全局变量
      • (2)修改全局变量(需`global`声明)
      • 注意:避免局部变量与全局变量同名
  • 五、常见问题与解决方案
    • 1. 参数数量/类型不匹配
        • 错误示例与修正
    • 2. 遗漏返回值
        • 错误示例与修正
    • 3. 修改全局变量未声明`global`
    • 4. 默认参数使用可变类型
        • 错误示例与修正
    • 5. 函数名重复
  • 六、实战案例:用户信息管理工具(函数版)
  • 七、总结
  • 八、专栏订阅

一、前置引入:为什么需要函数?

没有函数的编程模式,如同使用散装零件完成任务——每次实现特定功能都需重新组合代码片段;而函数则是将零件组装成的标准化工具,一次封装即可反复使用。

用一个生活例子帮你理解:你经常需要 “切水果”,如果没有工具,每次都要找刀、洗刀、切水果、洗刀,步骤重复又麻烦;但你买了一个 “切水果机”(函数),以后要切水果时,只需把水果(参数)放进去,按一下开关(调用函数),机器就会自动完成切水果的步骤,最后给你切好的水果(返回值)。

函数的核心价值体现在三个维度:

  1. 代码复用:相同逻辑仅需编写一次,通过函数调用在多场景复用,避免重复编码(如手机号验证逻辑封装后,注册、数据清洗场景可直接调用);
  2. 模块化开发:将复杂任务拆解为多个单一功能的函数(如用户管理系统拆分为“添加/查询/删除”函数),代码结构清晰,便于分工协作与问题定位;
  3. 易维护性:逻辑修改仅需更新函数内部实现,所有调用处自动生效(如调整成绩等级判定规则时,仅需修改get_score_level()函数)。

通过以下对比可直观感受函数的优势:

# 无函数:重复编写成绩等级判断逻辑(冗余且维护成本高)score1=
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/28 2:11:13

基于PLC的洗衣机内筒片自动下料装置

基于PLC的洗衣机内筒片自动下料装置设计 第一章 绪论 洗衣机内筒片作为洗衣机核心零部件,其生产下料环节的自动化程度直接决定零部件加工效率与精度。传统内筒片下料多采用人工上料、机械单次裁切模式,存在下料效率低、定位偏差大、人工操作安全风险高、…

作者头像 李华
网站建设 2026/2/9 1:45:12

拖延症福音 10个AI论文平台深度测评:继续教育毕业论文+格式规范全攻略

在当前学术研究日益数字化的背景下,论文写作已成为高校师生、研究人员及继续教育学员面临的核心任务之一。然而,从选题构思到文献检索、内容撰写再到格式规范,整个流程中存在诸多效率瓶颈与技术难点。尤其对于时间紧张、资源有限的继续教育群…

作者头像 李华
网站建设 2026/2/23 4:19:59

雷诺与法国国家橄榄球队,在紧张激烈的体育影片中庆祝愿景

雷诺与法国国家橄榄球队合作六年,双方在一部紧张激烈的体育影片中共同庆祝彼此的愿景。因为在橄榄球运动中,正如雷诺的愿景一样,必须回顾过去才能展望未来。橄榄球是唯一一项必须通过向后传球来推进并取得优势的运动。这一独特之处正是这项运…

作者头像 李华
网站建设 2026/2/22 8:50:30

还得是腾讯,Claude Code迎来最强中国对手!企业Agent有救了~

大家好,我是最近天天折腾CLI Agent的袋鼠帝。 一周前,我给大家安利了一款Claude Code的最强开源对手:OpenCode,没想到文章发出去后反响这么热烈,不管是阅读量还是评论都非常多。 这也再次印证了,天下苦Ant…

作者头像 李华