10、Python函数的定义、参数传递和返回值【用Python进行AI数据分析进阶教程】

用Python进行AI数据分析进阶教程10:Python函数的定义、参数传递和返回值


👉 欢迎订阅🔗
《用Python进行AI数据分析进阶教程》专栏
《AI大模型应用实践进阶教程》专栏
《Python编程知识集锦》专栏
《智能辅助驾驶》专栏
《工具软件及IT技术集锦》专栏


关键词 :Python、函数定义、参数传递、返回值、可变参数

概要 :本文详细介绍了Python中函数的定义、参数传递方式及返回值的使用。通过def关键字定义函数,包含函数名、参数列表和函数体,并结合文档字符串说明函数用途。参数传递支持位置参数、关键字参数、默认参数及可变参数(*args和**kwargs),提高了函数调用的灵活性。函数通过return语句返回结果,默认返回None;可返回多个值,实际以元组形式返回并支持解包赋值。文章强调了函数定义需在调用前、缩进一致性、默认参数顺序等注意事项,并通过多个示例演示了不同参数类型及返回值的用法,帮助读者掌握Python函数的基本结构与应用。

以下是关于 Python 函数的定义、参数传递和返回值的概念、关键点、注意点及举例说明:

一、函数的定义

1、概念:

函数是组织好的、可重复使用的代码块,用于实现特定的功能。在 Python 中,使用  def  关键字来定义函数,函数定义包括函数名、参数列表(可以为空)以及函数体。

2、关键点:

- 函数定义以  def  关键字开头,后面跟着函数名和一对括号,括号内可以包含参数,括号后是冒号  : 。

- 函数体是函数的核心部分,包含实现函数功能的代码,通过缩进来表示代码块。

- 函数名应具有描述性,能够清晰地表达函数的功能。

3、注意点:

- 函数定义必须在调用函数之前,否则会导致  NameError  错误。

- 缩进的代码块必须保持一致的缩进量,通常使用 4 个空格作为一个缩进级别。

4、举例:

Python脚本

# 定义一个名为 add_numbers 的函数,它接受两个参数 a 和 b 
# 这两个参数将用于后续的加法运算 
def add_numbers(a, b): 
    """ 
    这个函数用于计算两个数的和
    :param a: 第一个数
    :param b: 第二个数
    :return: 两数之和
    """ 
    # 在函数内部,将参数 a 和 b 相加,结果存储在变量 result 中 
    result = a + b 
    # 使用 return 语句将计算得到的结果返回 
    # 调用这个函数时,函数会把这个结果作为返回值传递给调用者 
    return result

二、参数传递

1、概念:

参数是函数在调用时传递给函数的输入值,函数通过这些参数来执行特定的操作。参数分为形式参数(在函数定义中声明的参数)和实际参数(在函数调用时传递给函数的参数)。

2、关键点:

- 位置参数:按照参数在函数定义中的顺序传递参数,实参和形参的位置必须一一对应。

- 关键字参数:使用参数名和值的形式传递参数, key=value  的形式,这样可以不按照参数的顺序传递。

- 默认参数:在函数定义时为参数指定一个默认值,当调用函数时如果没有传递该参数,则使用默认值。

- 可变参数:包括  *args (用于接收任意数量的位置参数,以元组形式保存)和  **kwargs (用于接收任意数量的关键字参数,以字典形式保存)。

3、注意点:

- 位置参数在传递时,数量和顺序必须与函数定义一致,否则会导致  TypeError  错误。

- 默认参数必须放在非默认参数之后,否则会出现语法错误。

- 可变参数  *args  和  **kwargs  可以同时使用,但  *args  必须在  **kwargs  之前。

4、举例:

Python脚本

# 1、位置参数 
# 定义一个名为 multiply 的函数,该函数接收两个参数 a 和 b 
# 函数的功能是返回这两个参数的乘积 
def multiply(a, b): 
    return a * b 
# 调用 multiply 函数,传入参数 3 和 4 
# 将函数的返回值打印输出,这里会输出 3 * 4 的结果 12 
print(multiply(3, 4))  # 输出: 12

# 2、关键字参数 
# 定义一个名为 greet 的函数,它接收两个参数 name 和 message 
# 函数使用 f-string 格式化字符串,将 message 和 name 组合成一个新的字符串并返回 
def greet(name, message): 
    return f"{message}, {name}!" 
# 调用 greet 函数,使用关键字参数的方式传入参数 # 指定 message 为 "Hello",name 为 "Alice" 
# 打印函数返回的字符串,即 "Hello, Alice!" 
print(greet(message="Hello", name="Alice"))  # 输出: Hello, Alice! 

# 3、默认参数 
# 定义一个名为 power 的函数,接收两个参数 base 和 exponent 
# exponent 参数有默认值 2,如果调用时不提供该参数,将使用默认值 
# 函数的功能是返回 base 的 exponent 次幂 
def power(base, exponent=2): 
    return base ** exponent 
# 调用 power 函数,只传入一个参数 3 
# 由于没有提供 exponent 参数,使用默认值 2 
# 打印函数返回的结果,即 3 的 2 次幂 9 
print(power(3)) # 输出: 9 
# 再次调用 power 函数,传入两个参数 3 和 3 
# 此时 exponent 参数使用传入的值 3 
# 打印函数返回的结果,即 3 的 3 次幂 27 
print(power(3, 3)) # 输出: 27 

# 4、可变参数 
# 定义一个名为 sum_numbers 的函数,使用 *args 接收不定数量的位置参数 
# 这些参数会被封装成一个元组传递给函数 
def sum_numbers(*args): 
    # 初始化一个变量 result 为 0,用于存储累加的结果 
    result = 0 
    # 使用 for 循环遍历 args 元组中的每个元素 
    for num in args: 
        # 将当前元素累加到 result 中 
        result += num 
        # 返回累加的结果 
        return result 
# 调用 sum_numbers 函数,传入多个参数 1、2、3、4、5 
# 函数会将这些参数累加并返回结果 
# 打印函数返回的结果,即 1 + 2 + 3 + 4 + 5 的和 15 
print(sum_numbers(1, 2, 3, 4, 5)) # 输出: 15 

# 定义一个名为 print_info 的函数,使用 **kwargs 接收不定数量的关键字参数 
# 这些参数会被封装成一个字典传递给函数 
def print_info(**kwargs): 
    # 使用 for 循环遍历 kwargs 字典中的每个键值对 
    for key, value in kwargs.items(): 
        # 使用 f-string 格式化输出每个键值对,格式为 "键: 值" 
        print(f"{key}: {value}") 

# 调用 print_info 函数,传入多个关键字参数 
# 函数会将这些键值对逐行打印输出 
# 这里会依次输出 "name: Bob"、"age: 25"、"city: New York" 
print_info(name="Bob", age=25, city="New York") 
# 输出: 
# name: Bob 
# age: 25 
# city: New York

三、返回值

1、概念:

函数执行完后返回给调用者的结果。使用  return  语句来指定函数的返回值,可以返回各种数据类型,如整数、字符串、列表、字典等。如果函数没有  return  语句,默认返回  None 。

2、关键点:

-  return  语句一旦执行,函数就会立即结束,并将指定的值返回给调用者。

- 可以返回多个值,实际上返回的是一个元组,在接收时可以使用多个变量进行解包。

3、注意点:

- 确保  return  语句返回的值的类型与函数的预期功能相符。

- 避免在函数中多次使用  return  语句导致逻辑混乱,除非是在条件语句中根据不同情况返回不同的值。

4、举例:

Python脚本

# 定义一个名为 divide 的函数,该函数接收两个参数 a 和 b,用于实现两个数的除法运算 
def divide(a, b): 
    # 检查除数 b 是否为 0 
    if b == 0: 
        # 如果除数为 0,函数返回提示信息 "除数不能为 0" 
        return "除数不能为 0" 
    # 如果除数不为 0,执行除法运算并返回结果 
    return a / b 

# 调用 divide 函数,传入参数 10 和 2 
# 由于 2 不为 0,函数将计算 10 除以 2 的结果 5 并返回 
# 打印函数的返回值,即 5 
print(divide(10, 2))  # 输出: 5.0 
# 调用 divide 函数,传入参数 10 和 0 # 因为除数为 0,函数会返回提示信息 "除数不能为 0" 
# 打印函数的返回值,即 "除数不能为 0" 
print(divide(10, 0)) # 输出: 除数不能为 0 

# 定义一个名为 get_name_and_age 的函数,该函数没有参数 
# 其功能是返回一个人的姓名和年龄 
def get_name_and_age(): 
    # 在函数内部定义变量 name 并赋值为 "Charlie",代表姓名 
    name = "Charlie" 
    # 在函数内部定义变量 age 并赋值为 30,代表年龄 
    age = 30 
    # 使用元组的形式返回姓名和年龄 
    return name, age 

# 调用 get_name_and_age 函数,将返回的元组进行解包 
# 分别将姓名赋值给变量 name,年龄赋值给变量 age 
name, age = get_name_and_age() 
# 使用 f-string 格式化字符串,将姓名和年龄按指定格式输出 
# 打印结果为 "Name: Charlie, Age: 30" 
print(f"Name: {name}, Age: {age}")  # 输出: Name: Charlie, Age: 30

通过理解和掌握函数的定义、参数传递和返回值的相关知识,可以更好地组织和复用代码,提高编程效率。

——The END——


🔗 欢迎订阅专栏

序号专栏名称说明
1用Python进行AI数据分析进阶教程《用Python进行AI数据分析进阶教程》专栏
2AI大模型应用实践进阶教程《AI大模型应用实践进阶教程》专栏
3Python编程知识集锦《Python编程知识集锦》专栏
4智能辅助驾驶《智能辅助驾驶》专栏
5工具软件及IT技术集锦《工具软件及IT技术集锦》专栏

👉 关注我 @理工男大辉郎 获取实时更新

欢迎关注、收藏或转发。
敬请关注 我的
微信搜索公众号:cnFuJH
CSDN博客:理工男大辉郎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

理工男大辉郎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值