函数经典知识点总结
一、函数的定义和调用
1.1 函数的定义
在大多数编程语言中,函数的定义通常包括函数名、参数列表和函数体。函数名用于标识函数的名称,参数列表用于接收函数的输入,函数体则包含函数的实际功能实现。
示例:
```
def add(a, b):
    return a + b
```
在上面的示例中,`add` 是函数的名称,`a` 和 `b` 是参数,函数体中的 `return a + b` 则是函
数的实际功能实现。
1.2 函数的调用
一旦函数被定义,就可以通过函数名和参数列表来调用函数。
示例:
```
result = add(1, 2)
print(result)  # 输出结果为3
```
在上面的示例中,我们通过 `add(1, 2)` 来调用函数 `add`,并将返回值赋给 `result` 变量。
二、参数传递
2.1 位置参数
在调用函数时,可以通过位置参数的方式将实际的参数值传递给函数。
示例:
```
def power(x, y):
    return x ** y
result = power(2, 3)
print(result)  # 输出结果为8
```
在上面的示例中,`2` 和 `3` 是位置参数,它们分别对应函数定义中的 `x` 和 `y`。
2.2 默认参数
有时候,函数的参数并非都是必须的,我们可以通过给参数设置默认值,来定义默认参数。
示例:
```
def greet(name, message="Hello"):
    print(f"{message}, {name}!")
greet("Alice")  # 输出结果为Hello, Alice!
greet("Bob", "Hi")  # 输出结果为Hi, Bob!
```
在上面的示例中,`message` 参数有一个默认值 "Hello",如果在调用函数时没有指定 `message` 的值,那么函数会使用默认值 "Hello"。
2.3 关键字参数
当函数的参数比较多时,我们可以使用关键字参数的方式来调用函数,这样可以避免混淆参
数的顺序。
示例:
```
def print_info(name, age, sex):
    print(f"Name: {name}, Age: {age}, Sex: {sex}")
print_info(name="Alice", age=20, sex="Female")
print_info(age=25, name="Bob", sex="Male")
```
在上面的示例中,我们通过关键字参数的方式来指定参数的值,从而避免了参数顺序的混淆。
2.4 可变参数
有时候,函数的参数个数是不确定的,这时我们可以使用可变参数来接收不定数量的参数。
示例:
```
def average(*args):
    return sum(args) / len(args)
result = average(1, 2, 3, 4, 5)
print(result)  # 输出结果为3.0
```
在上面的示例中,`*args` 是可变参数,它可以接收不定数量的参数,并将参数打包成一个元组。
2.5 关键字可变参数
除了可变参数之外,还可以使用关键字可变参数来接收不定数量的关键字参数。
示例:
```
def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")
print_info(name="Alice", age=20, sex="Female")
```
在上面的示例中,`**kwargs` 是关键字可变参数,它可以接收不定数量的关键字参数,并将参数打包成一个字典。
三、返回值
函数在执行完毕后可以通过 `return` 语句来返回一个值,也可以返回多个值。
示例:
字符串函数用法```
def divide(x, y):
    if y == 0:
        return "Cannot divide by zero"
    else:
        return x / y
result = divide(6, 3)
print(result)  # 输出结果为2.0
```
在上面的示例中,我们通过 `return` 语句来返回函数的计算结果。
四、作用域
4.1 局部作用域
在函数内部定义的变量具有局部作用域,它们只能在函数内部访问。
示例:
```
def func():
    x = 10
    print(x)
func()  # 输出结果为10
print(x)  # 报错,x未定义
```
在上面的示例中,变量 `x` 具有局部作用域,它只能在函数 `func` 内部访问。
4.2 全局作用域
在函数外部定义的变量具有全局作用域,它们可以在整个程序中被访问。
示例:
```
y = 20
def func():
    print(y)
func()  # 输出结果为20
```
在上面的示例中,变量 `y` 具有全局作用域,它可以在函数 `func` 内部被访问。
4.3 global 关键字
在函数内部,可以通过 `global` 关键字来将变量声明为全局变量。
示例:
```
z = 30
def func():
    global z
    z = 40
func()
print(z)  # 输出结果为40
```
在上面的示例中,我们通过 `global` 关键字将变量 `z` 声明为全局变量,从而在函数内部修改了全局变量的值。
五、递归
递归是指在函数内部调用自身的行为。递归可以用于解决一些复杂的问题,比如树的遍历、阶乘计算等。
示例:
```
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
result = factorial(5)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。