用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数据分析进阶教程》专栏 |
2 | AI大模型应用实践进阶教程 | 《AI大模型应用实践进阶教程》专栏 |
3 | Python编程知识集锦 | 《Python编程知识集锦》专栏 |
4 | 智能辅助驾驶 | 《智能辅助驾驶》专栏 |
5 | 工具软件及IT技术集锦 | 《工具软件及IT技术集锦》专栏 |
👉 关注我 @理工男大辉郎 获取实时更新
欢迎关注、收藏或转发。
敬请关注 我的
微信搜索公众号:cnFuJH
CSDN博客:理工男大辉郎