Python 3 介绍(十五)-- Python函数

目录

1. 定义函数

示例:

2. 参数传递

2.1 位置参数

示例:

2.2 默认参数

示例:

2.3 可变参数

2.3.1 *args:接收不定数量的位置参数

示例:

2.3.2 **kwargs:接收不定数量的关键字参数

示例:

3. 返回值

示例:

4. 文档字符串(Docstrings)

示例:

5. 匿名函数(Lambda 函数)

示例:

6. 递归函数

示例:

7. 作用域

7.1 局部作用域

示例:

7.2 全局作用域

示例:

8. 闭包

示例:

9. 装饰器

示例:

10. 函数作为参数

示例:

11. 函数作为返回值

示例:

总结


 

在 Python 3 中,函数是一段可重复使用的代码块,它封装了一定的功能,并且可以接受输入参数、执行操作,并返回结果。函数是程序设计中的一个重要概念,使用函数可以使代码更加模块化、可读性和可维护性更强。

1. 定义函数

在 Python 中,使用 def 关键字来定义一个函数。

示例:

 

python

深色版本

1def greet(name):
2    """打印一条问候消息"""
3    print(f"Hello, {name}!")
4
5# 调用函数
6greet("Alice")

2. 参数传递

函数可以接受参数,参数是在函数调用时传递给函数的信息。

2.1 位置参数

位置参数是按照顺序传递给函数的参数。

示例:

 

python

深色版本

1def add(a, b):
2    return a + b
3
4result = add(3, 4)
5print(result)  # 输出 7

2.2 默认参数

默认参数允许在定义函数时为参数设置默认值,这样在调用函数时不传入参数时,就会使用默认值。

示例:

 

python

深色版本

1def greet(name="Stranger"):
2    print(f"Hello, {name}!")
3
4greet()  # 输出 Hello, Stranger!
5greet("Alice")  # 输出 Hello, Alice!

2.3 可变参数

可变参数允许函数接收不确定数量的参数。

2.3.1 *args:接收不定数量的位置参数

示例:

 

python

深色版本

1def sum_all(*args):
2    total = sum(args)
3    print(total)
4
5sum_all(1, 2, 3, 4)  # 输出 10

2.3.2 **kwargs:接收不定数量的关键字参数

示例:

 

python

深色版本

1def describe_pet(pet_name, animal_type='dog'):
2    print(f"I have a {animal_type} named {pet_name}.")
3
4describe_pet(animal_type='hamster', pet_name='Harry')

3. 返回值

函数可以使用 return 语句返回一个值。

示例:

 

python

深色版本

1def add(a, b):
2    return a + b
3
4result = add(3, 4)
5print(result)  # 输出 7

4. 文档字符串(Docstrings)

文档字符串是放在函数定义的第一行的字符串,用于描述函数的作用。

示例:

 

python

深色版本

1def greet(name):
2    """打印一条问候消息"""
3    print(f"Hello, {name}!")
4
5help(greet)  # 查看函数的帮助信息

5. 匿名函数(Lambda 函数)

Lambda 函数是一种简短定义的小函数,通常用于需要简单函数的地方。

示例:

 

python

深色版本

1multiply = lambda x, y: x * y
2print(multiply(5, 6))  # 输出 30

6. 递归函数

递归函数是指在函数的定义中调用自身的函数。

示例:

 

python

深色版本

1def factorial(n):
2    if n == 1:
3        return 1
4    else:
5        return n * factorial(n - 1)
6
7print(factorial(5))  # 输出 120

7. 作用域

在 Python 中,变量的作用域决定了变量在哪里可以被访问。

7.1 局部作用域

局部作用域内的变量只能在定义它的函数内部访问。

示例:

 

python

深色版本

1def func():
2    x = 10
3    print(x)  # 输出 10
4
5func()
6# print(x)  # 会抛出 NameError,因为 x 是局部变量

7.2 全局作用域

全局作用域内的变量在整个模块内都可以被访问。

示例:

 

python

深色版本

1x = 10
2
3def func():
4    global x
5    x = 20
6    print(x)  # 输出 20
7
8func()
9print(x)  # 输出 20

8. 闭包

闭包是指一个函数与其相关的引用环境组合在一起的实体。闭包可以让函数记住并访问在其外部定义的变量。

示例:

 

python

深色版本

1def outer_func(msg):
2    message = msg
3
4    def inner_func():
5        print(message)
6
7    return inner_func
8
9hi_func = outer_func('Hi')
10bye_func = outer_func('Bye')
11
12hi_func()  # 输出 Hi
13bye_func()  # 输出 Bye

9. 装饰器

装饰器是一种特殊的函数,它可以修改其他函数的行为而不改变其源代码。

示例:

 

python

深色版本

1def my_decorator(func):
2    def wrapper():
3        print("Something is happening before the function is called.")
4        func()
5        print("Something is happening after the function is called.")
6    return wrapper
7
8@my_decorator
9def say_hello():
10    print("Hello!")
11
12say_hello()

10. 函数作为参数

函数可以作为参数传递给其他函数。

示例:

 

python

深色版本

1def call_func(callback):
2    callback()
3
4def hello():
5    print("Hello!")
6
7call_func(hello)  # 输出 Hello!

11. 函数作为返回值

函数可以作为其他函数的返回值。

示例:

 

python

深色版本

1def create_adder(x):
2    def adder(y):
3        return x + y
4    return adder
5
6add_5 = create_adder(5)
7print(add_5(10))  # 输出 15

总结

函数是 Python 中非常重要的概念,它们使得代码更加模块化、可重用和易于维护。通过理解和使用函数,可以编写更加高效和结构化的代码。无论是简单的函数还是复杂的递归函数,掌握函数的概念和技术都是非常有用的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值