一场探索函数的奇妙之旅

一、函数目的

函数的目的是封装一定的功能,提升代码复用,减少代码的编写。

二、函数定义

使用def语句创建函数,其格式为:

def my_fun(s,n):
    result = s * n
    print(result)

三、函数调用

函数调用是函数名(),例子如下:

def my_fun(s,n):
    result = s * n
    print(result)


my_fun()

四、函数形参

形参又叫形式参数,形参变量,它出现在函数声明时()中,例如下图的代码中,s,n就是形参

def my_fun(s,n):
    result = s * n
    print(result)


my_fun()

五、函数实参

实参又叫实际参数,有值,出现在函数调用()中,例如下图的代码中,10,20就是实参

def my_fun(s,n):
    result = s * n
    print(result)


my_fun(10,20)

六、函数返回值

函数返回值是指函数在执行完毕后返回给调用者的结果。在函数体内部,可以使用return语句来指定函数的返回值。

函数的返回值可以是任意类型的数据,包括整数、浮点数、字符串、列表、字典等等。函数可以有一个返回值,也可以没有返回值。

在函数体内部,当遇到return语句时,函数会立即停止执行,并将return后面的表达式的值作为返回值返回给调用者。函数返回值可以被存储在一个变量中,或者直接被使用。

以下是一个使用return语句返回函数执行结果的示例:

def add_numbers(x, y):
    result = x + y
    return result

sum = add_numbers(3, 4)
print(sum)  # 输出结果为 7

在上面的示例中,add_numbers函数接受两个参数xy,并将它们相加得到结果。使用return语句将结果返回给调用者,并存储在变量sum中。最后,我们将sum打印出来,得到结果为7。

需要注意的是,return语句会立即终止函数的执行,因此如果在return语句后面还有其他代码,这些代码将不会被执行到。通常情况下,return语句应该是函数的最后一条语句。如果没有显式地使用return语句,函数将默认返回None

七、函数的参数类型

1.位置参数

在定义函数时,可以在函数的参数列表中通过位置顺序指定需要接收的参数。当函数被调用时,实参的值会按照位置的对应关系传递给形参。

下面是一个使用位置参数的示例:

def greet(name, age):
    print(f"Hello, {name}! You are {age} years old.")

greet("Alice", 25)

在上面的例子中,函数greet定义了两个参数nameage。当函数被调用时,我们使用"Alice"25这两个实参值作为位置参数传递给函数。在函数内部,name参数接收到"Alice"age参数接收到25,然后打印出对应的问候语。

2.默认参数

默认参数是指在定义函数时,为某些参数指定了默认值。这样,在调用函数时,如果不传递这些参数的值,函数会使用默认值作为参数的值。默认参数可以在函数定义时通过赋值运算符(=)来指定,默认参数放在参数列表的末尾。

例如,下面是一个带有默认参数的函数的示例:

def greet(name, message="Hello"):
    print(message, name)

greet("John")  # 输出:Hello John
greet("Mary", "Hi")  # 输出:Hi Mary

在上面的例子中,greet函数有两个参数:namemessagemessage参数有一个默认值,如果调用函数时没有传递message的值,函数会使用默认值"Hello"。当调用greet("John")时,只传递了一个参数name,函数会使用默认值"Hello"打印出"Hello John"。当调用greet("Mary", "Hi")时,传递了两个参数,函数会使用传递的值打印出"Hi Mary"。

3.关键字参数

关键字参数是指在调用函数时,通过参数名来指定参数的值。使用关键字参数可以不按照参数定义的顺序传递参数,并且可以只传递需要的参数,而其他参数使用默认值。

以下是一个使用关键字参数的示例:

def greet(name, message):
    print(message, name)

greet(message="Hello", name="John")  # 输出:Hello John
greet(name="Mary", message="Hi")  # 输出:Hi Mary

在上面的示例中,greet函数有两个参数:namemessage。当调用函数时,通过参数名来指定参数的值,可以按照任意顺序传递参数。例如,greet(message="Hello", name="John")会打印出"Hello John",greet(name="Mary", message="Hi")会打印出"Hi Mary"。

4.可变元组参数

可变元组参数是指在函数定义时,使用"*args"来表示接受任意数量的位置参数,并将这些参数以元组的形式传递给函数。

下面是一个使用可变元组参数的示例:

def print_args(*args):
    for arg in args:
        print(arg)

print_args(1, 2, 3)  # 输出:1 2 3

在上面的示例中,print_args函数定义中的*args表示接受任意数量的位置参数,这些参数会以元组的形式存储在args变量中。当调用函数时,传递的参数会被打包成一个元组,然后传递给args

在第一个调用print_args(1, 2, 3)中,传递了三个整数参数,这三个参数会被打包成一个元组(1, 2, 3),然后传递给argsfor循环遍历args,将每个参数打印出来。

5.字典参数

字典参数是指在函数定义时,使用"**kwargs"来表示接受任意数量的关键字参数,并将这些参数以字典的形式传递给函数。

下面是一个使用字典参数的示例:

def print_kwargs(**kwargs):
    for key, value in kwargs.items():
        print(key, ":", value)

print_kwargs(name="Alice", age=25, city="New York")  # 输出:name : Alice, age : 25, city : New York

在上面的示例中,print_kwargs函数定义中的**kwargs表示接受任意数量的关键字参数,这些参数会以字典的形式存储在kwargs变量中。当调用函数时,传递的关键字参数会以键值对的形式存储在字典kwargs中。

在调用print_kwargs(name="Alice", age=25, city="New York")中,传递了三个关键字参数,这三个参数会以键值对的形式存储在字典kwargs中,即{"name": "Alice", "age": 25, "city": "New York"}for循环遍历kwargs.items(),将每个键值对打印出来。

八、匿名函数

匿名函数是一种在代码中定义函数的方式,但不给函数指定一个名称。它通常用于需要在某个地方定义一个简单的函数,而不需要为其命名或重复使用的场景。

匿名函数可以使用lambda关键字定义,其语法如下: lambda 参数列表: 表达式

参数列表是函数的输入参数,可以有多个参数,用逗号分隔。表达式则是函数的执行逻辑,也是函数的返回值。

下面是一个使用匿名函数计算两个数的和的例子:

add = lambda x, y: x + y
print(add(3, 4))  # 输出结果为7

匿名函数可以作为其他函数的参数传递,也可以被赋值给变量。它在编写一些简单的逻辑时非常方便,可以减少代码的复杂性和冗余。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值