当前位置: 首页 > news >正文

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=
http://www.jsqmd.com/news/333600/

相关文章:

  • Vue3 + TypeScript + el-input 处理年份输入(最多只能输入四位数字,不能输入其他符号)
  • MWGA让千亿行代码在Web端“复活”!
  • 2026年12mm按钮服务商厂家推荐,北京天波泰技术与服务双优 - 工业推荐榜
  • uniapp vue3 小程序 实现样式穿透
  • 河北炬恩丝网制品有限公司:口碑好的地铁盾构走道板、隧道走道板、地铁走道板厂家推荐,盾构走道板全系供应 - 品牌推荐官
  • oracle javascripts 学习
  • 2026洁净地漏生产厂家推荐:技术与品质双优的行业选择 - 品牌排行榜
  • 探讨盈尚环境工程有限公司服务商技术实力是否精湛,如何选择合适的 - 工业品牌热点
  • 实测YOLO-Master v2:MoE架构加持,检测+分割+计数联合推理延迟仅增7%(智慧零售实操全解析)
  • 小米电视 如何去掉开机老是打广告?
  • 汽车模具五轴加工中心企业口碑排行:聚焦AMU260,纳米涂层涂覆机/在线式真空等离子清洗机AMU260五轴加工中心公司 - 品牌推荐师
  • 当“意义”成为稀缺货币:为何顶尖决策者正从《意义对谈》寻找新的价值锚点
  • <span class=“js_title_inner“>别盯着参数看啦!2026年,AI 圈的“狂热”正转向“务实”</span>
  • Fastboot必须要用USB2.0的数据线!
  • 2026国内最新板材生产厂家top10推荐!优质环保/全屋定制/柜体/家装板材企业权威榜单发布,质优合规助力高品质家居 - 品牌推荐2026
  • YOLO26 核心改进解析:无NMS+移除DFL,边缘端推理速度飙升43%
  • 2026年万能材料拉力机厂家权威推荐:单柱/电子/万能/拉力试验机及检测仪源头厂家精选 - 品牌推荐官
  • 2026不锈钢洁净排水系统:技术标准与工程应用实践 - 品牌排行榜
  • 实测对比YOLO26 vs YOLOv13:三大硬件平台SOTA选型指南(速度/精度/部署成本全解析)
  • 高安市英语雅思培训机构推荐,2026权威测评出国雅思辅导机构口碑榜单 - 老周说教育
  • 2026年称重传感器十大品牌权威推荐与对比分析 - 品牌推荐大师1
  • 2026四川活动板房厂家权威榜单 适配多场景与各类需求 全景解析适配方案 - 深度智识库
  • 测试平台之reports应用的前世今生,以及django_filters的不同类型的字段如何使用,达到前端过滤的效果
  • 国产数控车床哪家强?高刚性、高效率、高光洁度:深度解析台茂精机的核心技术优势 - 品牌推荐大师1
  • 高安市英语雅思培训机构推荐:2026权威测评出国雅思辅导机构口碑榜单 - 老周说教育
  • Midscene.js
  • 2026年四川活动板房厂家哪家靠谱?聚焦品质与实用的靠谱之选 - 深度智识库
  • 激光切管机厂家常见问题解答(2026最新专家版) - 速递信息
  • 2026年山东地区靠谱的轻钢龙骨防火板吊顶源头工厂排名,哪家口碑好? - 工业品网
  • 30 天推歌挑战