Administrator
发布于 2026-06-21 / 1 阅读
0
0

Python 函数定义、参数、返回值与局部全局变量

一、前言

前面我们写的代码都是顺序执行,重复功能需要反复复制粘贴,代码冗余难维护。Python 函数可以把一段重复逻辑封装起来,一次定义、多次调用,是代码复用、模块化开发的核心。

本篇完整讲解函数基础定义、各类参数、返回值、局部 / 全局变量,附带实战案例。

二、函数基础定义与调用

1. 语法格式

python

运行

def 函数名(参数列表):
    函数内部代码块
    return 返回值
  • def:定义函数关键字,不可省略

  • 函数名:遵循变量命名规范,下划线命名,见名知意

  • 括号:即使无参数也必须保留

  • 末尾冒号:代表函数代码块开始

  • 缩进:内部代码统一缩进 4 空格

  • return:向外返回数据,无 return 默认返回None

2. 无参函数示例

python

运行

# 定义打招呼函数
def say_hello():
    print("你好,欢迎学习Python函数!")

# 调用函数,执行内部代码
say_hello()
say_hello()

三、带参数的函数(实现通用逻辑)

参数相当于函数的 “入口数据”,调用时传入不同值,得到不同结果。

1. 位置参数(必传参数)

python

运行

# 定义求两数之和函数,a、b为位置参数
def add(a, b):
    res = a + b
    print(f"{a} + {b} = {res}")

# 调用时按顺序传参
add(10, 20)
add(3.5, 6.5)

2. 关键字参数(不限制传入顺序)

python

运行

add(b=100, a=200)

3. 默认参数(不传参自动使用预设值)

python

运行

# age默认值18
def show_info(name, age=18):
    print(f"姓名:{name},年龄:{age}")

show_info("小明")       # 不传age,使用默认18
show_info("小红", 20)  # 传入参数覆盖默认值

四、return 返回值(函数向外输出结果)

print 仅打印内容,无法把结果交给其他变量;return 可以将计算结果返回,供外部代码使用。

python

运行

# 函数返回两数乘积
def mul(x, y):
    return x * y

# 接收返回值存入变量
result = mul(6, 7)
print("乘积结果:", result)

# 无return函数返回None
def test():
    print("无返回值函数")
res = test()
print(res) # 输出 None

返回多个值(自动封装为元组)

python

运行

def calc(num1, num2):
    add_res = num1 + num2
    sub_res = num1 - num2
    # 同时返回两个结果
    return add_res, sub_res

sum_val, sub_val = calc(20, 8)
print("和:", sum_val, "差:", sub_val)

五、局部变量 & 全局变量

1. 局部变量:仅函数内部可用

函数内定义的变量,出了函数直接失效,外部无法访问

python

运行

def func():
    num = 100  # 局部变量
    print(num)

func()
# print(num)  此行会报错,外部找不到num

2. 全局变量:整个程序都能访问

函数外部定义的变量,所有代码均可读取;函数内修改需要global关键字声明

python

运行

count = 0  # 全局变量

def add_count():
    global count  # 声明使用全局变量
    count = count + 1
    print("当前计数:", count)

add_count()
add_count()
print("全局变量最终值:", count)

六、综合实战 1:封装判断成年工具函数

python

运行

def is_adult(age):
    if age >= 18:
        return True
    else:
        return False

user_age = int(input("输入年龄:"))
if is_adult(user_age):
    print("成年人,允许访问")
else:
    print("未成年人,禁止访问")

七、综合实战 2:批量计算平均分函数

python

运行

def get_average(score_list):
    total = sum(score_list)
    avg = total / len(score_list)
    return round(avg, 2)

scores = [88, 92, 76, 95, 81]
avg_score = get_average(scores)
print(f"班级平均分:{avg_score}")

八、新手高频报错

  1. 定义函数忘记写def、末尾冒号,直接语法报错

  2. 调用函数时参数数量不匹配:缺少必传参数 / 传入多余参数

  3. 试图在函数外部打印局部变量:NameError

  4. 函数内直接修改全局变量未加global,修改不生效

  5. 混淆 print 与 return:想要复用计算结果却只用 print,拿不到返回值

九、下期预告

下一篇:Python 文件操作:读写 TXT、JSON、CSV 文件实战,实现本地数据持久化存储。


评论