Python 函数从入门到上手:一篇讲透定义、调用与参数
这是一篇基于你日常学习整理的 Python 函数入门指南涵盖了从定义到参数使用的核心知识点。Python 函数从入门到上手一篇讲透定义、调用与参数告别重复代码把复杂任务封装起来让编程更高效在写 Python 程序的时候你肯定遇到过这种情况同一段代码需要反复写好几次不仅麻烦而且一旦要修改还得把所有地方都改一遍很容易漏掉。这时候函数Function就是你的救星。函数可以理解为一个具有独立功能的代码块它接受一些输入参数经过内部处理后返回一个结果。它就像是一个小工厂你给它原材料参数它就能生产出产品返回值。一、为什么要用函数在正式学习语法之前我们先来聊聊函数到底能带来什么好处代码复用告别重复这是函数最核心的价值。把常用的逻辑封装成函数需要的时候直接调用就行不用反复写相同的代码。模块化逻辑更清晰复杂的任务可以拆分成多个小函数每个函数只专注做一件事。这样代码结构一目了然阅读和修改都更轻松。易于维护修改更方便如果逻辑需要调整只需要修改函数内部的代码所有调用它的地方都会自动生效避免了漏改、错改的问题。简单来说函数能让你的代码更简洁、更清晰、更健壮。二、函数的定义与调用1. 如何定义一个函数在 Python 中使用def关键字来定义函数基本格式如下pythondef 函数名(参数列表): 文档字符串描述函数是做什么的可选 # 函数体缩进的代码块 # 实现具体功能的语句 return 返回值 # 可选没有则返回 Nonedef是英文 define 的缩写表示开始定义一个函数。函数名应该能清晰表达函数的功能遵循标识符命名规则字母、数字、下划线组成不能以数字开头。参数列表函数可以接收外部传入的数据多个参数用逗号分隔。文档字符串Docstring用三个引号括起来用来描述函数的作用方便他人理解和使用。函数体是函数的核心逻辑所在必须缩进通常为4个空格。return 语句用于结束函数并返回一个值。如果没写return函数会默认返回None。举个例子定义一个求两数之和的函数pythondef add(num1, num2): 接收两个数字返回它们的和 result num1 num2 return result2. 如何调用一个函数定义好的函数不会自动执行需要调用Call它才行。调用的语法很简单函数名(参数)。python# 调用 add 函数并把返回值赋给变量 sum_result sum_result add(10, 20) print(sum_result) # 输出30注意Python 是解释型语言代码从上往下执行。函数必须先定义再调用否则程序会报错NameError。python# 错误示例 # greet() # 此处调用会报错name greet is not defined def greet(): print(Hello!) greet() # 正确调用三、函数的参数参数是函数灵活性的关键它让函数能处理不同的数据。函数定义时的参数叫形参Parameter调用时传入的具体值叫实参Argument。1. 位置参数这是最常用的一种。调用函数时传入的实参会按照位置顺序依次赋值给形参。pythondef introduce(name, age, city): print(f{name}{age}岁来自{city}) # 按位置顺序传入张三给name25给age北京给city introduce(张三, 25, 北京)2. 关键字参数调用时通过形参名值的方式指定可以打乱顺序让代码更清晰。python# 使用关键字参数顺序可以不同 introduce(city上海, name李四, age30)3. 默认参数在定义函数时可以为某些参数指定默认值。调用时如果不传这个参数就会使用默认值让函数的使用更灵活。注意带有默认值的参数必须放在所有没有默认值的参数后面。pythondef greet(name, greeting你好): print(f{greeting}{name}) greet(小明) # 输出你好小明 greet(小红, 哈喽) # 输出哈喽小红4. 可变参数*args和**kwargs当你不知道需要传入多少个参数时可以用可变参数来“打包”接收*args接收任意数量的位置参数把它们放在一个元组tuple里。**kwargs接收任意数量的关键字参数把它们放在一个字典dict里。pythondef print_all(*args, **kwargs): print(位置参数, args) print(关键字参数, kwargs) print_all(1, 2, 3, name张三, age25) # 输出 # 位置参数 (1, 2, 3) # 关键字参数 {name: 张三, age: 25}四、函数的返回值returnreturn是函数的“出口”它的作用有两方面返回结果把函数执行后的结果“送”回给调用它的地方可以用一个变量来接收这个结果。结束函数函数一旦执行到return语句就会立即停止后面的代码都不会再执行。pythondef check_even(num): if num % 2 0: return True # 如果是偶数执行到这里函数就结束了 # 下面的代码只有在上面条件不满足时才会执行 return False result check_even(10) print(result) # 输出TruePython 的函数还可以返回多个值实际上是以元组tuple的形式返回的。pythondef get_user_info(): name 小明 age 18 return name, age # 返回一个元组 (name, age) user_name, user_age get_user_info() print(user_name) # 输出小明 print(user_age) # 输出18总结概念作用示例定义函数使用def封装一段代码def add(a, b):调用函数执行写好的函数add(10, 20)形参与实参定义时的“占位符”与调用时的“实际值”def add(a, b):中的ab是形参add(10, 20)中的1020是实参返回值用return将结果返回给调用者return a b掌握函数是学习 Python 模块化编程的关键一步。希望这篇指南能帮你理清思路写出更简洁、高效的代码。

相关新闻

前视二维多波束成像声呐技术与深度学习应用

前视二维多波束成像声呐技术与深度学习应用

1. 前视二维多波束成像声呐技术概述前视二维多波束成像声呐(Forward-Looking Sonar,简称FLS)是水下探测领域的革命性技术装备。不同于传统侧扫声呐的条带式成像方式,FLS通过电子波束形成技术在前方扇形区域内实现高分辨率实时成像…

2026/10/18 1:28:54 阅读更多 →
翻出了入行做游戏的初心之作

翻出了入行做游戏的初心之作

翻出了入行做游戏的初心之作——《种课树吧》。 这是我独立开发的第一款小游戏,也是真正开启我游戏开发道路的起点。 如今再回看,画面、玩法都带着新手时期的青涩,心里却满是感慨。 从敲下第一行代码、绘制第一棵小树,到步数兑能量…

2026/10/18 1:28:54 阅读更多 →
AI Agent架构设计:从感知到执行的技术实现

AI Agent架构设计:从感知到执行的技术实现

1. AI Agent架构的核心设计理念 在AI领域摸爬滚打多年后,我发现一个现象:那些真正能落地的AI系统,往往都遵循着某种"感知-思考-行动"的循环模式。这就像人类处理问题的基本方式——先观察环境(感知)&#xf…

2026/10/18 1:29:48 阅读更多 →

最新新闻

GitHub 开源趋势日报 | 2026年10月8日:AI Agent 与 TypeScript 项目实战配置指南

GitHub 开源趋势日报 | 2026年10月8日:AI Agent 与 TypeScript 项目实战配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 19:43:30 阅读更多 →
插入排序为何在工程中比冒泡更受欢迎?

插入排序为何在工程中比冒泡更受欢迎?

1. 项目概述:从一道经典面试题切入真实工程选择逻辑“为什么插入排序比冒泡排序更受欢迎?”——这道题常出现在算法入门课的期末卷、校招笔试的选择题第3题,甚至某次技术面中面试官随口一问。但如果你真以为这只是在考“谁交换次数少”或者“…

2026/10/18 19:43:30 阅读更多 →
Claude Code 权限模式完全指南:Auto、Bypass、Ask 三模式深度解析与 TaoToken 接入实践

Claude Code 权限模式完全指南:Auto、Bypass、Ask 三模式深度解析与 TaoToken 接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 19:43:30 阅读更多 →
Unity3D快抢红包互动小游戏开发全流程:从玩法设计到真机适配踩坑记录

Unity3D快抢红包互动小游戏开发全流程:从玩法设计到真机适配踩坑记录

做活动互动开发的人应该都有感觉,需求方现在越来越不满足于“摇一摇”“扫码抽奖”这种老套路,点名要的往往是更有画面感、更刺激的玩法。Unity3D 快抢红包互动小游戏这类项目,就是在这种需求里反复出现的类型:大屏上倒计时跳动&a…

2026/10/18 19:43:30 阅读更多 →
本地化AI代码评审系统:Java静态分析与GLM-4双通道实践

本地化AI代码评审系统:Java静态分析与GLM-4双通道实践

简介:这是一套面向Java中高级开发者与AI工程实践者的代码质量提升工具,聚焦于利用人工智能技术实现Java代码的自动化评审与漏洞识别,适用于CI/CD集成、团队代码规范统一及个人代码健壮性自查等场景。资源共34个文件,含24个Java核心…

2026/10/18 19:43:30 阅读更多 →
Cursor Agent 文件写入频繁要求确认 — 排查记录与 TaoToken 配置实践

Cursor Agent 文件写入频繁要求确认 — 排查记录与 TaoToken 配置实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 19:42:30 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →