
图1:Python函数入门 – 函数核心概念与使用优势
一、先搞懂:什么是Python函数?为啥一定要学?
初学Python时,大家都会写一行行零散的代码,但如果要反复实现同一个功能(比如计算加法、打印信息),每次都重写太麻烦了。函数就是解决这个问题的核心方法——把实现特定功能的代码封装成一个独立的代码块,给它起个名字,之后只要调用这个名字,就能执行里面的所有代码,这就是函数的本质,也是Python函数基础的核心逻辑。
- 省时间:一次编写无限复用,不用反复敲重复代码,效率直接翻倍
- 易维护:代码出问题只改函数内部,不用在整篇代码里找来找去
- 清结构:一个函数管一个功能,程序逻辑一目了然,不杂乱
- 好协作:团队开发时每人写自己的函数,拼起来就能组成完整程序
二、Python函数基础:最基础的定义与调用,写第一个函数
Python定义函数有固定格式,核心就用def关键字,记住「def + 函数名 + 括号 + 冒号 + 缩进代码块」这个公式,再用「函数名+括号」调用,这是函数入门的第一个必学知识点,新手照猫画虎就能会。
1. 无参数、无返回值:最入门的函数写法
适合实现固定功能,不用传数据,也不用获取计算结果,直接执行就行,新手先从这个练手,熟悉定义和调用的流程。
# Python函数入门:第一个入门函数,直接复制就能运行
# 定义函数:def 函数名(): 注意冒号不能丢,代码要缩进4个空格(Tab键)
def say_hello():
# 函数内部的代码,缩进4个空格
print("你好,我是Python函数!")
print("学会我,写代码就能省一半功夫~")
# 调用函数:函数名() 只有调用,函数里的代码才会执行
# 很多新手定义完不调用,导致代码没反应,这是第一个要避开的坑!
say_hello()
2. 函数执行的3个核心步骤,新手必懂
很多新手定义完函数,运行后发现没任何反应,就是因为没搞懂执行流程,记住这3步,再也不会踩这个基础坑。
- 定义阶段:写def+函数名的代码,只是把函数“存进电脑内存”,不会执行里面的print、计算等操作
- 调用阶段:写函数名(),程序才会跳转到函数内部,按顺序执行里面的每一行代码
- 执行完毕:函数里的代码执行完,程序会回到调用的位置,继续执行后面的代码

图2:Python函数入门 – 定义与调用核心执行流程
三、Python函数基础:带参数的函数,让函数更灵活
无参数的函数只能干固定的事,实际开发中我们需要函数处理不同的数据,这时候就需要参数——参数就是函数的“输入口”,调用时把数据传进去,函数就能根据传入的数据执行不同操作,这是Python函数入门的核心知识点。
1. 单个参数:给函数传一个数据
# 括号里的name就是参数,相当于一个“占位符”,接收外部传入的数据
def greet(name):
# 用f-string格式化输出,把传入的name拼进字符串
print(f"你好,{name}!欢迎学习Python函数入门知识")
# 调用时,括号里写实际要传的数据(实参),替换占位符
# 传不同的名字,函数会输出不同的结果,这就是参数的作用
greet("小明")
greet("小红")
greet("零基础学Python的小伙伴")
2. 多个参数:给函数传多个数据
多个参数用逗号分隔,调用时按顺序传值就行,适合需要多份数据才能实现的功能(比如加减乘除、打印个人信息)。
# a和b是两个参数,接收外部传入的两个数字
def add(a, b):
# 计算a+b的结果,直接打印
print(f"{a} + {b} = {a + b}")
# 按顺序传入多个数据,一一对应参数位置
# 第一个数对应a,第二个数对应b,顺序不能乱
add(10, 20)
add(3, 7)
add(5.5, 4.5) # 支持小数,Python会自动识别数据类型
四、Python函数基础:return返回值,获取函数的计算结果
前面的函数都是直接打印结果,实际开发中我们需要把函数的计算结果存起来,后续再用(比如用加法结果继续做乘法),这时候就需要return关键字——它是函数的“输出口”,把计算结果返回给调用者,这是函数入门的必学重点。
核心注意:函数执行到return会立即停止,后面的代码再也不会执行,新手一定要注意这个细节!
# Python函数入门:带返回值的加法函数
def add(a, b):
# 用return返回计算结果,不直接打印,方便后续使用
return a + b
# return后面的代码不会执行,写了也白写,新手别浪费时间
print("这句话永远不会被打印")
# 用变量接收返回值,后续可以反复使用这个结果
result1 = add(10, 20)
result2 = add(3, 7)
print("第一次计算结果:", result1)
print("第二次计算结果:", result2)
print("两次结果相加:", result1 + result2) # 用返回值继续做计算,这就是return的意义
五、Python函数基础:2种传参方式,位置参数+关键字参数
调用带参数的函数时,有两种传参方式,适合不同的开发场景,学会后能有效避免传参错误,让代码更易读,这是Python函数入门的实用技巧。
1. 位置参数:默认的传参方式,按顺序传
最常用的方式,调用时的实参与定义时的形参位置一一对应,第一个实参对应第一个形参,第二个对应第二个,绝对不能乱序。
def info(name, age):
print(f"姓名:{name},年龄:{age}")
# 位置参数:第一个值对应name,第二个对应age,顺序不能错
info("小明", 18)
# 乱序会导致结果错误,新手千万别踩这个坑
# info(18, "小明") # 会输出:姓名:18,年龄:小明,明显不符合逻辑
2. 关键字参数:指定参数名传,不用管顺序
传参时写「参数名=值」,明确告诉函数哪个值对应哪个参数,顺序可以任意调换,适合参数比较多的场景,避免记混顺序。
# 关键字参数:参数名=值,顺序可任意调换,可读性更高
info(age=20, name="小红")
info(name="小李", age=19)
# 位置参数和关键字参数可以混用(核心规则:位置参数必须在前)
info("小张", age=22)
六、Python函数基础:默认参数,简化重复场景的调用
如果某个参数在大部分情况下都是固定值,就可以给它设置默认参数——调用时不传这个参数,函数就用默认值;需要个性化时再传值覆盖,能大幅简化重复场景的函数调用,这是Python函数入门的高频技巧。
核心规则:默认参数必须放在非默认参数的末尾,否则会直接报语法错误,这是新手的高频坑!
# Python函数入门:默认参数示例
# country="中国"是默认参数,必须放在非默认参数name、age后面
def info(name, age, country="中国"):
print(f"姓名:{name},年龄:{age},国家:{country}")
# 不传country,自动使用默认值「中国」,简化调用步骤
# 大部分用户都是中国的,不用每次都传国家,非常方便
info("小明", 18)
info("小张", 22)
# 传country,覆盖默认值,实现个性化需求(比如外国用户)
info("Jack", 22, "美国")
info("Lisa", 20, "英国")
# 错误写法:默认参数不能放在非默认参数前面
# def info(country="中国", name, age): # 直接报SyntaxError,新手别写

图3:Python函数入门 – 三种基础参数类型核心区别对比
七、Python函数基础:进阶参数,*args与**kwargs(接收任意参数)
实际开发中,我们有时不知道函数需要接收多少个参数(比如计算任意多个数字的和、打印任意多的个人信息),这时候就需要可变参数——*args和**kwargs,能接收任意数量的参数,让函数更灵活,是Python函数入门的进阶知识点,学会后能处理更多场景。
1. *args:接收任意多个位置参数,打包成元组
args是arguments的缩写,前面加*,能接收任意数量的位置参数,函数内部会把这些参数自动打包成一个元组,用for循环就能遍历使用。
# Python函数入门:*args接收任意位置参数,实现任意数字求和
def sum_all(*args):
total = 0
# 遍历元组args,累加所有传入的数字
# args是元组,支持for循环、索引等所有元组操作
for num in args:
total += num
return total
# 可以传任意多个参数,多少个都可以,函数都能处理
print(sum_all(1, 2, 3)) # 传3个参数,输出6
print(sum_all(10, 20, 30, 40)) # 传4个参数,输出100
print(sum_all(5, 6, 7, 8, 9)) # 传5个参数,输出35
print(sum_all()) # 不传参数也可以,返回0
2. **kwargs:接收任意多个关键字参数,打包成字典
kwargs是keyword arguments的缩写,前面加**,能接收任意数量的关键字参数,函数内部会把这些参数自动打包成一个字典(key是参数名,value是参数值)。
# Python函数入门:**kwargs接收任意关键字参数,打印任意信息
def print_info(**kwargs):
# 遍历字典kwargs,打印所有键值对
# kwargs是字典,支持所有字典操作,比如get()、keys()等
for key, value in kwargs.items():
print(f"{key}:{value}")
# 可以传任意多个关键字参数,多少个都可以
print_info(name="小明", age=18, city="北京")
print_info(name="小红", age=20, city="上海", grade="三年级")
print_info() # 不传参数也可以,不会打印任何内容
八、Python函数基础:综合实战,写一个四则运算小工具
结合上面学的所有知识点,我们写一个「四则运算小工具」,封装加、减、乘、除四个函数,实现任意两个数的四则运算,把定义、调用、参数、返回值全用起来。练完这道题,Python函数入门的基础就彻底掌握了,能独立写简单的函数工具了。
# Python函数入门:四则运算实战案例,可直接复制运行
# 定义四个函数,分别实现加减乘除,都带返回值
def add(a, b):
# 加法:返回a+b的结果
return a + b
def sub(a, b):
# 减法:返回a-b的结果
return a - b
def mul(a, b):
# 乘法:返回a*b的结果
return a * b
def div(a, b):
# 做除法时,判断除数是否为0,避免程序报错,新手必加的判断
if b == 0:
return "错误:除数不能为0"
# 除法:返回a/b的结果
return a / b
# 定义两个测试数字,调用函数验证效果
a = 20
b = 5
# 调用函数,打印结果,用f-string格式化输出,更美观
print(f"{a} + {b} = {add(a, b)}")
print(f"{a} - {b} = {sub(a, b)}")
print(f"{a} × {b} = {mul(a, b)}")
print(f"{a} ÷ {b} = {div(a, b)}")
# 测试除数为0的情况,验证异常处理效果
print(f"10 ÷ 0 = {div(10, 0)}")
九、Python函数基础:5个高频易错点,新手一次性避开
整理了Python函数入门阶段,新手最容易踩的5个坑,每个坑都标了原因和具体解决方法,看完这些,再也不会因为这些基础问题报错,节省调试时间。
坑1:只定义函数,不调用,代码永远不执行
很多新手写完def定义函数的代码,就以为会自动执行,结果运行后没任何反应。解决方法:定义完必须写「函数名()」主动调用,函数里的代码才会执行。
坑2:参数个数不匹配,直接触发TypeError
定义函数时指定了2个无默认值参数,调用时只传1个或多传1个,都会直接报错。解决方法:无默认值参数,传参个数必须和定义时完全一致。
坑3:return后面写代码,完全无效
函数执行到return会立即终止,后面的代码再写也不会执行,纯纯浪费时间。解决方法:把所有要执行的代码都写在return前面。
坑4:默认参数放在非默认参数前面,报语法错
这是Python的硬性语法规则,默认参数不能放在非默认参数前面,写了就报错。解决方法:定义函数时,先写无默认的参数,再写有默认的参数。
坑5:位置参数和关键字参数混用,位置参数在后
混用传参时,如果把位置参数写在关键字参数后面,会直接报语法错。解决方法:位置参数永远写在前面,关键字参数写在后面。
Python函数入门 延伸学习推荐
想深入了解官方语法,可看Python官方函数定义文档;学完函数基础,可继续看我的往期文章Python输入输出与格式化技巧,把函数和输入输出结合起来练手;后续还会更新函数进阶内容:递归、作用域、lambda表达式,关注我不迷路~
Python函数入门:核心知识点速记,看完就能用
- 定义函数:def 函数名(参数): + 缩进代码块,冒号和缩进不能丢,这是Python的语法要求
- 调用函数:函数名(实参),只有主动调用,函数里的代码才会执行
- 参数类型:位置参数(按序传)、关键字参数(指定名传)、默认参数(放末尾,可省略)
- 返回值:return 把计算结果返回,执行后立即终止函数,后面代码不执行
- 可变参数:*args 收任意位置参数(打包成元组),**kwargs 收任意关键字参数(打包成字典)
- 核心原则:参数个数匹配、默认参数放末尾、return前写完整代码、位置参数在前关键字参数在后
本文是Python零基础入门系列的第10篇核心文章,专门讲解Python函数入门基础。更多新手能直接上手的Python教程,可看往期内容:
Python输入输出与格式化技巧、
Python变量与变量名全解析、
Python数据类型实战练习。
版权声明:本文所有内容(含代码、文字、图片)均为原创,未经授权禁止转载、抄袭、洗稿
如需转载,请联系作者获取授权,且必须在正文开头标注原文链接和作者信息!
下一篇预告:Python函数进阶——递归、作用域、lambda匿名函数!
Python函数入门
Python零基础
Python入门
Python函数
Python参数
*args **kwargs
Python编程

渝公网安备50022402001073号