Python def函数定义基础语法与结构详解

追风的人
追风的人
发布时间:2026-10-10 | 2人浏览过
原创

在Python中,函数是组织好的、实现单一或关联功能的代码段。通过def(define的缩写)关键字,开发者可以将一段逻辑封装起来,便于重复调用并降低代码重复率。定义一个标准函数主要包含六个核心部分:def关键字、函数名称、形参列表、冒号、缩进的函数体,以及可选的return返回值。

一、函数定义的标准骨架与语法解构

Python定义函数拥有固定的语法模式。每个组成部分在语法解析器中承担着不同的解析任务,漏写冒号或错误缩进都会直接导致解析失败。

def 函数名(形参1, 形参2, ...):
    """可选的文档字符串(Docstring),解释函数功能"""
    执行语句1
    执行语句2
    return 返回值

为了直观拆解这套语法结构,以下图示逐项标出了语法元素及其对应的约束规则:

Python def函数定义基础语法与结构详解
图1:Python def函数定义的关键组成部分与语法规范

各个语法元素的具体要求如下:

  • def关键字:必须全小写,这是Python识别函数定义的保留字。
  • 函数名:命名需符合Python变量命名规则。通常使用全小写字母,单词之间通过下划线_分隔(如get_user_info),且不能以数字开头或使用Python内置关键字。
  • 圆括号与参数列表:圆括号是语法必须的,即使函数不需要任何输入,也必须保留空括号()。参数之间用英文逗号分隔。
  • 末尾英文冒号::冒号不可遗漏,它告诉解释器下一行开始进入函数内部的作用域。
  • 缩进语句块:Python不使用花括号{}界定函数体,而是严格依赖缩进(PEP 8标准推荐4个空格)。缩进对齐的代码行都属于该函数。

二、从定义到执行:三步流程

编写函数并让它在程序中跑通,需要经历明确的顺序:先定义、再调用、后处理返回结果。Python属于解释型脚本语言,代码自上而下逐行解析,函数的调用必须发生在函数定义完成之后。

Python def函数定义基础语法与结构详解
图2:函数从声明定义到执行调用的操作步骤流

下面是一个完整的可执行演示。我们在同一个脚本中完成函数的定义与调用:

# 第一步:定义函数
def build_greeting(name):
    message = f"你好,{name}!欢迎学习Python。"
    return message

# 第二步:调用函数并传入参数
result = build_greeting("李明")

# 第三步:使用函数的返回结果
print(result)

输出示例:

你好,李明!欢迎学习Python。

三、深入理解核心结构与机制

1. 形参(Parameter)与实参(Argument)的映射关系

在函数定义中,括号里的变量被称为形参,它充当占位符;在函数调用时实际塞入的具体值被称为实参。调用时,Python会将实参对象赋值给对应的形参名。

Python def函数定义基础语法与结构详解
图3:调用方实参与函数内部形参的数据流转关系

2. return语句的两种核心行为

return关键字在函数体内部有两个不可忽视的功能:

  • 决定返回值:return后面跟的表达式即为函数的输出值。如果省略return,或者单纯写一个return后不跟任何表达式,Python会默认返回特殊单例对象None。
  • 终止执行:一旦代码执行遇到return,函数会立即退出,位于return之后且处于同级或下级缩进的代码块都不会被执行。
def check_age(age):
    if age < 0:
        return "无效年龄"  # 当条件满足时在此处提前返回并终止函数
    
    if age >= 18:
        return "成年人"
    return "未成年人"

print(check_age(-5))
print(check_age(20))

输出示例:

无效年龄
成年人

四、常见语法报错与排查清单

初学者在编写函数时,通常会遇到几类常见的语法错误(SyntaxError)或运行时异常。遇到提示时可对照下表进行针对性修正:

报错提示 典型错误场景 产生原因与解决办法
SyntaxError: expected ':' def process_data(val) 在形参列表括号末尾漏写了英文冒号。补齐冒号即可。
IndentationError: expected an indented block def my_func():
print("hello")
函数体首行没有缩进。在def下一行需缩进4个空格。
NameError: name 'xxx' is not defined 在def定义代码之前调用了该函数 调用发生时该函数尚未加载到全局命名空间。调整代码顺序,确保定义在前、调用在后。
TypeError: missing required positional argument 函数定义了两个参数,调用时只传了一个值 实参个数与形参需求不匹配。检查调用时的传参列表。
注意事项:如果函数内部定义了与外部同名的变量,在函数内部修改该变量默认只会在局部作用域(Local Scope)生效,并不会直接影响函数外部的同名全局变量。

五、基础语法综合总结

掌握Python的def函数定义,关键在于严格遵守声明格式、理解形参映射以及理清return在流程控制中的作用。整个知识脉络可归纳如下:

Python def函数定义基础语法与结构详解
图4:Python def函数基础语法与运行结构全景总结

在编写实际程序时,先将独立的功能封装为小函数,明确每一个函数的输入(形参)与输出(return),不仅可以保持代码整洁,也为后续的代码测试与模块化开发打下坚实的基础。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表