Python学习—函数篇 面面俱到,细致讲解

目录

1.函数目的

2.函数定义

3.函数的调用

4.函数的形参,实参

5.函数的返回值

1.返回一个值

2.返回多个值

3.没有返回值

4.返回None

6.函数的参数类型

1. 必需参数

2. 关键字参数

3. 默认参数

4. 可变参数

5. 关键字可变参数

7.匿名函数

基本语法

示例


1.函数目的

在编程中,定义函数的目的是为了将一段可重复使用的代码逻辑封装起来,使其能够通过一个函数名和参数列表进行调用。函数定义的主要目的包括:

1.  模块化代码:将复杂的程序分解为较小的功能块,每个功能块对应一个函数,使得代码更易于理解和维护。

2.  提高代码复用性:定义函数可以使相同或类似功能在不同的上下文中多次调用,避免重复编写相同的代码片段。

3.  抽象和封装:函数将实现细节隐藏在函数体内部,只暴露给外部调用者函数的接口(即函数的名称和参数列表),这种封装提高了代码的可读性和可维护性。

4.  简化代码:函数可以将复杂的操作简化为一个函数调用,提高了代码的简洁性和可读性。

5.  提高可测试性:函数使得代码更易于单元测试,因为可以独立地测试每个函数的输入和输出,确保其行为符合预期。

6.  减少错误和调试时间:通过函数封装,可以减少代码中的重复性错误,并且当需要调试时,可以更方便地定位和修复问题。

2.函数定义

函数定义是在编程中定义一个可重复使用的代码块或子程序的过程。

函数定义通常包括这关键部分:函数名,形参,实参,函数体,返回值,

def wake_up(name, num):    # wake_up 函数名  name,num  形参 
    """
    函数:封装叫醒功能
    """
    for i in range(num):    
        print(f"醒醒啦 {name}")


# 调用一个函数

wake_up("王思聪", 1)
print("-----")
wake_up("马云", 2)
print("-----")
wake_up("马化腾", 5)


3.函数的调用

# 定义函数,形参为两个数 a 和 b
def add_numbers(a, b):
    result = a + b
    return result

# 调用函数,并输出结果
x = 5
y = 3
sum_result = add_numbers(x, y)
print("Sum:", sum_result)

在这个示例中:

1.add_numbers 是函数的名称,它接受两个形参 a 和 b。
2.在主程序中,我们定义了变量 x 和 y,它们作为实参传递给函数 add_numbers。
3.函数 add_numbers 返回 x + y 的结果,这个结果被赋值给变量 sum_result。
4.最后,程序打印出 Sum: 后面跟着函数返回的结果。

4.函数的形参,实参

例一:

# 定义一个函数,计算两个数的和
def add_numbers(a, b):
    return a + b

# 调用函数,传递具体的数值作为实参
result = add_numbers(3, 5)
print("Result:", result)  # 输出:Result: 8



# 分析add_numbers 函数有两个形参 a 和 b,用来接收两个数值。

# 函数调用 add_numbers(3, 5) 中,3 和 5 是实参,它们被传递给函数来执行加法操作。

例二:

# 定义一个函数,将两个字符串连接起来
def concatenate(str1, str2):
    return str1 + " " + str2

# 调用函数,传递两个字符串作为实参
result = concatenate("Hello", "World!")
print("Result:", result)  # 输出:Result: Hello World!


# concatenate 函数有两个形参 str1 和 str2,分别表示要连接的两个字符串。
# 函数调用 concatenate("Hello", "World!") 中,"Hello" 和 "World!" 是实参,它们被传递给 
# 函数来执行字符串连接操作。

5.函数的返回值

在Python中,使用 return 语句返回函数值

1.返回一个值

def add(a, b):
    return a + b

result = add(3, 5)
print(result)  # 输出:8

返回值为a + b 的值

2.返回多个值

Python 中的函数可以返回多个值,实际上是返回一个元组(tuple)。

def divide(a, b):
    quot = a // b
    rema = a % b
    return quot, rema

result = divide(10, 3)
print(result)  # 输出:(3, 1)

divide 函数返回了两个值:商 quot 和余数 rema,作为一个元组 (quot, rema) 返回给调用者。

3.没有返回值

有些函数并不需要返回值,或者只用于执行操作而不返回具体结果。这时可以使用 return 语句不带任何表达式,或者直接省略 return 语句:

def greet(name):
    print(f"Hello, {name}!")

greet("Alice")

4.返回None

如果一个函数执行完毕后没有显式地使用 return 语句返回任何值,Python 默认会返回 None

def do_nothing():
    pass

result = do_nothing()
print(result)  # 输出:None

do_nothing 函数没有具体的返回值,因此 result 的值是 None

6.函数的参数类型

1. 必需参数

必需参数是指函数定义时声明的参数,在调用函数时必须按顺序传入对应的实参。例如:

def greet(name, greeting):
    return f"{greeting}, {name}!"

# 使用关键字参数传递参数,可以不按顺序
result = greet(greeting="Hi", name="Bob")
print(result)  # 输出:Hi, Bob!

namegreeting 都是必需参数

2. 关键字参数

关键字参数是指在调用函数时使用 key=value 形式传递的参数,可以不按照定义时的顺序传递。例如:

def greet(name, greeting):
    return f"{greeting}, {name}!"

# 使用关键字参数传递参数,可以不按顺序
result = greet(greeting="Hi", name="Bob")
print(result)  # 输出:Hi, Bob!

greeting="Hi", name="Bob",关键字参数

3. 默认参数

默认参数在函数定义时给定默认值,在调用函数时如果没有传入这些参数,则使用默认值。例如:

def sum_numbers(*args):
    total = 0
    for num in args:
        total += num
    return total

# 可以传递任意数量的实参
result1 = sum_numbers(1, 2, 3)
print(result1)  # 输出:6

result2 = sum_numbers(10, 20, 30, 40)
print(result2)  # 输出:100

greeting 参数有一个默认值 "Hello",如果调用时没有提供这个参数,就会使用默认值。

4. 可变参数

可变参数允许传递不定数量的实参给函数。在函数定义中,可以使用 *args 来表示可变参数。例如:

def sum_numbers(*args):
    total = 0
    for num in args:
        total += num
    return total

# 可以传递任意数量的实参
result1 = sum_numbers(1, 2, 3)
print(result1)  # 输出:6

result2 = sum_numbers(10, 20, 30, 40)
print(result2)  # 输出:100

5. 关键字可变参数

关键字可变参数允许传递不定数量的关键字参数给函数。在函数定义中,可以使用 **kwargs 来表示关键字可变参数。例如:

def value_s( **kwargs):
    print(sid)
    print(name)
    print(*args)
    print(info)
    print(kwargs)


value_s(more1="小羊们别跑", s=10)

value_s 函数可以接受任意数量的关键字参数,并打印它们的键值对。

7.匿名函数

基本语法

匿名函数的基本语法如下:

lambda arguments: expression
  • lambda 是关键字,表示创建一个匿名函数。
  • arguments 是函数的参数,类似于正常函数中的参数列表,可以是任意数量的参数。
  • expression 是一个表达式,函数执行时返回这个表达式的结果。

示例

1.计算平方

square = lambda x: x ** 2
print(square(5))  # 输出:25

lambda x: x ** 2 创建了一个接受参数 x 并返回 x ** 2 的匿名函数。通过 square(5) 调用这个匿名函数,并输出结果 25

2.加法

add = lambda a, b: a + b
print(add(3, 4))  # 输出:7

这里的 lambda a, b: a + b 定义了一个接受两个参数 ab,并返回它们的和的匿名函数。

  • 52
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值