深入解析:Python中的函数-1

目录

一.引言

1.为什么要定义函数?

2.什么是函数?

3.函数在Python中的作用

二.函数的定义与调用

1.函数的定义

2.函数的调用

三.函数的返回值

四.数的参数

1.位置参数

2.关键字参数

3.默认参数

4.可变参数

4.1可变位置参数 *args - 接收任意数量的位置参数

4.2 可变关键字参数**kwargs - 接收任意数量的关键字参数


一.引言

1.为什么要定义函数?

当一段代码完成了特定功能时,若需要重复使用这段代码,则可以把它定义成函数。

2.什么是函数?

函数是一个被命名的独立的完成特定的代码段,并且可能给调用它的程序一个返回值。

重复使用,写一次可以进行多次调用,避免重复使用。

有利于调试与维护,定位问题更加方便,修改局部代码不会影响整体。

提升开发效率,模块化开发,使协作更方便。

3.函数在Python中的作用

函数是Python程序中的基本构建单元,几乎所有的Python程序都会用到函数,不管是内置函数还是自定义函数,都可以让我们写出更高效整洁的代码。

二.函数的定义与调用

1.函数的定义

函数的基本语法:

def 函数名(参数):
函数体
...
return 返回值

2.函数的调用

在Python中,函数和变量一样,都是先定义再使用。

# 定义函数
def 函数名(参数):
函数体
...
return 返回值
# 调⽤函数
函数名(参数1)

举例:用函数写一个求和的程序

# 定义带返回值的函数
def add(a, b):
return a + b
# 调用函数并获取返回值
result = add(3, 5)
print(result)  # 输出:8

三.函数的返回值

return返回单个值的情况

# 返回单个值的函数
def S(r):
"""计算圆的面积"""
S = 3.14 * r ** 2
return S  # 返回单个数值
# 调用函数
S = S(5)
print(f"圆的面积是: {S}")  # 输出: 圆的面积是: 78.5

如果一个函数有多个返回值,如果想要同时返回多个结果,可以使用return元组的形式。

def get_rectangle():
length = 10
width = 5
return length, width  # 返回(长, 宽)
# 调用函数
l, w = get_rectangle()
print(f"矩形长度: {l}, 宽度: {w}, 面积: {l*w}")
# 输出: 矩形长度: 10, 宽度: 5, 面积: 50

return没有返回值的情况

# 没有返回值的函数
def print_greeting(name):
"""打印问候语"""
print(f"你好, {name}!")
# 没有return语句,默认返回None
# 调用函数
result = print_greeting("张三")
print(f"函数的返回值是: {result}")
# 输出:
# 你好, 张三!
# 函数的返回值是: None

显示返回值为None的情况

# 显式返回None的函数
def check_age(age):
"""检查年龄是否有效"""
if age < 0:
print("无效的年龄")
return None  # 显式返回None
return age  # 返回有效年龄
# 调用函数
age_result = check_age(-5)
print(f"返回值: {age_result}")  # 输出: 返回值: None
valid_age = check_age(25)
print(f"返回值: {valid_age}")  # 输出: 返回值: 25

四.数的参数

什么时候定义函数需要参数?什么时候调用函数需要传参?

当函数体需要从外部获取数据的时候就不需要参数,反之需要参数。

当定义函数的时候带了参数(该参数无默认值),那么调用的该函数的时候就需要传参数。

1.位置参数

位置参数是最基本的参数类型,调用时需要按照定义的顺序传递。

def greet(name, greeting):
print(f"{greeting}, {name}!")
greet("小明", "你好")  # 正确: 你好, 小明!
greet("你好", "小明")  # 错误: 顺序不对

2.关键字参数

通过参数值指定指定,可以不按顺序传递。

def greet(name, greeting):
print(f"{greeting}, {name}!")
greet(greeting="你好", name="小明")  # 正确: 你好, 小明!

3.默认参数

定义函数时参数为指定默认值,默认参数必须放在非默认参数后面。

def greet(name, greeting="你好"):
print(f"{greeting}, {name}!")
greet("小明")          # 输出: 你好, 小明!
greet("小明", "嗨")    # 输出: 嗨, 小明!

4.可变参数

4.1可变位置参数 *args - 接收任意数量的位置参数

def sum_numbers(*args):
total = 0
for num in args:
total += num
return total
print(sum_numbers(1, 2, 3))  # 输出: 6
print(sum_numbers(1, 2, 3, 4, 5))  # 输出: 15

4.2 可变关键字参数**kwargs - 接收任意数量的关键字参数

def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="小明", age=18)
# 输出:
# name: 小明
# age: 18

posted @ 2025-08-08 21:26  yjbjingcha  阅读(40)  评论(0)    收藏  举报