Python基础知识4

1. 函数

1.1 定义

在 Python 中,我们借助 def 关键字来定义函数。其基本的语法格式如下:

python

def function_name(parameters):
    """函数文档字符串(可选)"""
    function_body
    return result

  • 函数名:它需要遵循 Python 的命名规则,一般采用小写字母和下划线组合的方式,要具有清晰的描述性,能够让人一眼就明白这个函数的主要功能。
  • 参数列表:参数列表可以为空,意味着函数不需要外部输入;也可以包含一个或多个参数,各个参数之间用逗号分隔,这些参数就像是函数运行所需的原材料。
  • 函数体:这是函数的核心部分,包含了函数要执行的具体代码,就像工具的操作流程一样。
  • return 语句:它的作用是返回函数的执行结果,不过这是一个可选部分。如果函数中没有 return 语句,那么函数默认返回 None

1.2 函数参数

1.2.1 位置参数

在调用函数时,需要严格按照函数定义中参数的顺序依次传入对应的值。例如:

python

def describe_pet(animal_type, pet_name):
    print(f"I have a {animal_type}.")
    print(f"My {animal_type}'s name is {pet_name}.")

describe_pet("dog", "Buddy")

1.2.2 关键字参数

在调用函数时,我们可以明确指定参数的名称和对应的值,这样就不用担心参数顺序带来的问题了。例如:

python

def describe_pet(animal_type, pet_name):
    print(f"I have a {animal_type}.")
    print(f"My {animal_type}'s name is {pet_name}.")

describe_pet(animal_type="cat", pet_name="Whiskers")

1.2.3 默认参数

在定义函数的时候,可以为某些参数预先指定默认值。当调用函数时,如果没有为这些参数传递具体的值,那么函数就会使用默认值。例如:

python

def describe_pet(pet_name, animal_type="dog"):
    print(f"I have a {animal_type}.")
    print(f"My {animal_type}'s name is {pet_name}.")

describe_pet("Buddy")
describe_pet("Whiskers", "cat")

1.2.4 可变参数

  • *args:它用于接收任意数量的位置参数。在函数内部,这些参数会被打包成一个元组。例如:

python

def show_items(*args):
    return f"Items: {args}"

print(show_items(1, 2, 3))

  • **kwargs:它用于接收任意数量的关键字参数。在函数内部,这些参数会被打包成一个字典。例如:

python

def show_details(**kwargs):
    return f"Details: {kwargs}"

print(show_details(name="Alice", age=25))

1.3 函数返回值

函数可以通过 return 语句返回一个值,也可以返回多个值。如果返回多个值,这些值会以元组的形式呈现。例如:

python

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

result = add(3, 5)
print(result)

def get_name_and_age():
    name = "Alice"
    age = 25
    return name, age

name, age = get_name_and_age()
print(name, age)

1.4 函数调用

当我们定义好一个函数后,就可以通过函数名加上括号的方式来调用它,并且根据函数的定义传递相应的参数。例如:

python

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

greet("Alice")

1.5 匿名函数(Lambda 函数)

使用 lambda 关键字可以创建匿名函数,这类函数通常用于定义一些简单的、只需要使用一次的功能。例如:

python

add = lambda a, b: a + b
result = add(3, 5)
print(result)

1.6 递归函数

递归函数是一种特殊的函数,它在函数内部会调用自身。以计算阶乘为例:

python

def factorial(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial(n - 1)

print(factorial(5))

2. 知识点总结

  1. 函数定义:使用 def 关键字,包含函数名、参数列表、函数体和可选的 return 语句。
  2. 函数参数
    • 位置参数:按顺序传递值。
    • 关键字参数:明确指定参数名和值。
    • 默认参数:定义时指定默认值,调用时可省略。
    • 可变参数*args 接收任意数量位置参数,**kwargs 接收任意数量关键字参数。
  3. 函数返回值:通过 return 语句返回一个或多个值,多个值以元组形式返回。
  4. 函数调用:使用函数名加括号并传递参数来调用函数。
  5. 匿名函数:使用 lambda 关键字创建简单的一次性函数。
  6. 递归函数:函数内部调用自身,需设置终止条件。

3. 补充资料

3.1 函数文档字符串

函数文档字符串(docstring)用于对函数的功能、参数和返回值等信息进行说明,方便其他开发者理解和使用函数。可以通过函数的 __doc__ 属性访问。例如:

python

def add(a, b):
    """
    此函数用于计算两个数的和。

    参数:
    a (int 或 float): 第一个加数。
    b (int 或 float): 第二个加数。

    返回:
    int 或 float: 两个数的和。
    """
    return a + b

print(add.__doc__)

3.2 函数作用域

Python 中的函数有自己的作用域,函数内部定义的变量属于局部变量,只能在函数内部访问;而在函数外部定义的变量属于全局变量,可以在函数内部访问,但如果要在函数内部修改全局变量,需要使用 global 关键字。例如:

python

x = 10

def change_x():
    global x
    x = 20

print(x)  # 输出 10
change_x()
print(x)  # 输出 20

3.3 高阶函数

高阶函数是指可以接受函数作为参数或者返回函数的函数。例如,Python 内置的 map() 函数就是一个高阶函数,它接受一个函数和一个可迭代对象作为参数,将函数应用到可迭代对象的每个元素上。例如:

python

def square(x):
    return x ** 2

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(square, numbers))
print(squared_numbers)

3.4 装饰器

装饰器是一种特殊的高阶函数,它可以在不修改原函数代码的情况下,为函数添加额外的功能。例如:

python

def my_decorator(func):
    def wrapper():
        print("在函数执行前做一些事情")
        func()
        print("在函数执行后做一些事情")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()

以上这些知识点可以帮助我们更深入地理解和运用 Python 函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值