Python函数入门详解(定义+调用+参数)

作为Python入门的核心知识点,函数是实现代码复用、逻辑解耦的关键。很多新手刚接触函数时,分不清"定义"和"调用"的区别,对参数传递更是一头雾水,导致写出来的函数要么报错,要么逻辑混乱。

今天就把Python函数拆解成"定义-调用-参数-返回值"四个核心模块,搭配极简代码示例,新手跟着练,10分钟就能掌握函数的基础用法,轻松写出可复用的代码~

一、函数的核心概念:为什么要用函数?

函数就像"预先封装好的工具"------把一段常用的代码逻辑包裹起来,需要时直接"调用",不用重复写相同代码。

比如:计算两个数的和,写一次求和函数,后续求任意两个数的和,直接调用即可,无需重复写a + b

二、函数的基础:定义与调用(最核心!)

1. 函数定义(造工具)

语法格式:

Python 复制代码
def 函数名(参数列表):
    """函数说明文档(可选,建议写)"""
    函数体(要执行的代码)
    return 返回值(可选)
  • def:定义函数的关键字(必须有);

  • 函数名:符合变量命名规范(小写+下划线),见名知意;

  • 参数列表:调用函数时需要传入的数据(可选);

  • 函数体:核心逻辑代码(缩进4个空格,和def对齐);

  • return:返回函数执行结果(可选,无return则返回None)。

2. 函数调用(用工具)

语法格式:函数名(传入参数)

调用才会执行函数体代码,只定义不调用,函数永远不会运行。

示例1:无参数、无返回值的函数

Python 复制代码
# 定义函数:打印欢迎语
def print_welcome():
    """打印欢迎信息"""
    print("欢迎学习Python函数!")

# 调用函数(必须调用才会执行)
print_welcome()  # 输出:欢迎学习Python函数!

示例2:有参数、有返回值的函数

Python 复制代码
# 定义函数:计算两个数的和
def add_num(a, b):
    """计算两个数的和,返回结果"""
    result = a + b
    return result  # 返回求和结果

# 调用函数,接收返回值
sum1 = add_num(5, 3)
print(sum1)  # 输出:8

sum2 = add_num(10.5, 20.3)
print(sum2)  # 输出:30.8

三、函数的灵魂:参数传递(新手必懂4种参数)

参数是函数和外部交互的"接口",新手重点掌握4种常用参数,覆盖90%的使用场景。

1. 位置参数(最常用)

调用时按参数定义的顺序传入值,数量必须和定义一致。

Python 复制代码
# 定义:参数a、b为位置参数
def print_info(name, age):
    print(f"姓名:{name},年龄:{age}")

# 调用:按顺序传入"张三"(对应name)、20(对应age)
print_info("张三", 20)  # 输出:姓名:张三,年龄:20

# ❌ 错误:参数数量不一致(少传/多传都会报错)
# print_info("李四")  # 报错:缺少1个位置参数

2. 默认参数

定义时给参数赋值,调用时可省略该参数(使用默认值)。

Python 复制代码
# 定义:age设置默认值18
def print_info(name, age=18):
    print(f"姓名:{name},年龄:{age}")

# 调用1:省略age,使用默认值18
print_info("王五")  # 输出:姓名:王五,年龄:18

# 调用2:传入age,覆盖默认值
print_info("赵六", 22)  # 输出:姓名:赵六,年龄:22

💡 避坑:默认参数必须放在位置参数后面!

3. 关键字参数

调用时指定参数名,无需按顺序传入,适合参数多的场景。

Python 复制代码
# 定义:3个位置参数
def print_info(name, age, gender):
    print(f"姓名:{name},年龄:{age},性别:{gender}")

# 调用:指定参数名,顺序可乱
print_info(gender="男", name="孙七", age=25)  # 输出:姓名:孙七,年龄:25,性别:男

4. 可变长度参数(*args、**kwargs)

处理"不确定数量的参数",新手常用在批量处理数据场景。

Python 复制代码
# *args:接收任意数量的位置参数,打包成元组
def sum_all(*args):
    total = 0
    for num in args:
        total += num
    return total

print(sum_all(1,2,3))  # 输出:6
print(sum_all(10,20,30,40))  # 输出:100

# **kwargs:接收任意数量的关键字参数,打包成字典
def print_detail(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}:{value}")

print_detail(name="周八", age=30, address="北京")
# 输出:
# 姓名:周八
# 年龄:30
# 地址:北京

四、函数的返回值:return的用法

  • return 会终止函数执行(后面的代码不会运行);

  • 一个函数可以返回多个值(用逗号分隔,返回时自动打包成元组)。

Python 复制代码
# 返回单个值
def get_max(a, b):
    if a > b:
        return a
    else:
        return b

print(get_max(10, 20))  # 输出:20

# 返回多个值
def get_info():
    name = "吴九"
    age = 28
    return name, age  # 等价于返回 (name, age)

name, age = get_info()  # 解包接收
print(name, age)  # 输出:吴九 28

五、新手避坑指南

  1. 函数名不能重复(重复定义会覆盖之前的函数);

  2. 缩进错误:函数体必须缩进(4个空格),否则报错;

  3. 参数传递:位置参数必须在关键字参数前面;

  4. return位置:return写在循环/条件里时,注意是否提前终止函数。

最后

函数的核心是"复用"和"解耦",新手先掌握"定义-调用-位置参数-返回值"这四个基础点,再逐步学习默认参数、可变参数。练习时可以把之前写的代码(比如文本统计、密码生成)改造成函数,加深理解。

相关推荐
曲幽3 小时前
我用FastAPI接ollama大模型,差点被asyncio整崩溃(附对话窗口实战)
python·fastapi·web·async·httpx·asyncio·ollama
两万五千个小时6 小时前
落地实现 Anthropic Multi-Agent Research System
人工智能·python·架构
哈里谢顿9 小时前
Python 高并发服务限流终极方案:从原理到生产落地(2026 实战指南)
python
用户8356290780511 天前
无需 Office:Python 批量转换 PPT 为图片
后端·python
markfeng81 天前
Python+Django+H5+MySQL项目搭建
python·django
GinoWi1 天前
Chapter 2 - Python中的变量和简单的数据类型
python
JordanHaidee1 天前
Python 中 `if x:` 到底在判断什么?
后端·python
ServBay1 天前
10分钟彻底终结冗长代码,Python f-string 让你重获编程自由
后端·python
闲云一鹤1 天前
Python 入门(二)- 使用 FastAPI 快速生成后端 API 接口
python·fastapi