今天是认识函数的基础

1.函数目的:

python函数的主要目的是封装可重复使用的代码块,以便在需要时可以调用。函数可以接受输入参数,并根据给定的输入参数执行特定的操作,然后返回结果。函数的使用可以提高代码的可读性和可维护性,同时也可以减少代码的重复性。通过定义函数,我们可以将代码逻辑分解为更小的模块,使代码更加模块化和结构化。

2.函数定义:

在Python中,函数可以使用def关键字来定义。函数定义的一般语法格式是:

 

python复制插入

def 函数名(参数1, 参数2, ...):
    # 函数体
    # 执行语句
    return 返回值

复制插入

其中,函数名是自己定义的名称,参数是函数的输入,可以有零个或多个参数。函数体是函数的具体实现代码,可以包含多行代码。return语句用于指定函数的返回值,可以省略。如果省略return语句,函数默认返回None。

以下是一个简单的函数定义示例:

 

python复制插入

def greet(name):
    print("Hello, " + name + "!")

复制插入

上述代码定义了一个名为greet的函数,它接受一个参数name,并在屏幕上打印出"Hello, "加上name的内容。

函数的调用方式是通过函数名后面加上括号,括号内可以传入对应的参数值。例如:

 

python复制插入

greet("Alice")

复制插入

上述代码会调用greet函数,并将参数值"name"设置为"Alice"。函数调用会触发函数体中的代码执行,最终输出"Hello, Alice!"。

3.函数声明:

函数声明是指在Python中定义一个函数。函数声明的格式如下:

def function_name(parameters): """函数的文档字符串""" # 函数的代码块

其中,function_name 是函数的名字,parameters 是函数的参数,可以是多个参数,用逗号分隔。文档字符串是可选的,用来描述函数的功能和使用方法。函数的代码块是函数执行的具体操作。

4.函数调用

在Python中,可以使用函数来封装一段可重复使用的代码。使用函数可以提高代码的可读性和复用性。

要调用一个函数,需要按照函数名后面加上圆括号的方式进行调用。如果函数需要传递参数,可以在圆括号中输入参数的值。

例如,我们定义一个名为add的函数来实现两个数字的相加操作:

 

python复制插入

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

复制插入

然后,我们可以使用add函数来调用它,并传递两个参数:

 

python复制插入

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

复制插入

在这个例子中,add函数的参数a和b分别被赋值为3和4,然后执行相加操作,并将结果返回。最后,将结果打印出来。

函数调用的结果可以存储在变量中,或者直接使用。

另外,还可以使用关键字参数的方式来调用函数。关键字参数可以明确指定参数的取值,而不需要按顺序传递参数。

 

python复制插入

result = add(b=4, a=3)
print(result)

复制插入

在这个例子中,我们明确指定了参数a的值为3,参数b的值为4,与函数定义中的参数顺序可以不一致。

需要注意的是,在调用函数时,需要确保函数名的拼写和参数的个数、类型与函数定义一致,否则可能会导致错误。

5.函数形参:

函数形参(function parameter)是函数定义中的变量,用于接收调用函数时传入的实参(argument)的值。在函数定义时,可以指定一个或多个形参,每个形参都有一个名称和一个默认值(可选)。形参的值会在函数被调用时根据实参传入的值来进行赋值。

在Python中,函数形参定义在函数名之后的括号中。例如下面的函数定义中,x和y是形参:

 

python复制插入

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

复制插入

在调用该函数时,需要传入两个实参,实参会被依次赋值给形参x和y:

 

python复制插入

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

复制插入

如果函数定义中给形参设置了默认值,那么在调用函数时可以选择传入对应实参的值,如果没有传入对应的实参,形参会使用默认值。例如下面的函数定义中,y的默认值为2:

 

python复制插入

def multiply(x, y=2):
    result = x * y
    return result

复制插入

在调用该函数时,可以传入一个实参,也可以传入两个实参:

 

python复制插入

result = multiply(3)
print(result)  # 输出 6

result = multiply(3, 4)
print(result)  # 输出 12

复制插入

需要注意的是,形参的顺序决定了实参的赋值顺序。在调用函数时,可以按照形参的顺序传入实参,也可以根据形参的名称指定实参的赋值。例如下面的函数定义中,形参x和y的顺序可以互换,但在调用函数时,传入的实参的顺序需要与形参的顺序相对应:

6.函数实参:

在Python中,函数的参数可以是实参。实参是函数调用中传递给函数的值。函数在定义时可以指定参数,而调用函数时需要提供相应的实参。

以下是一些使用实参的示例:

  1. 位置实参:按照定义函数时的参数顺序来传递实参。
 

python复制插入

def greet(name, age):
    print("Hello", name)
    print("You are", age, "years old")

greet("Alice", 25)

复制插入

输出:

 

复制插入

Hello Alice
You are 25 years old

复制插入

  1. 关键字实参:通过参数名来指定实参的值。
 

python复制插入

def greet(name, age):
    print("Hello", name)
    print("You are", age, "years old")

greet(age=25, name="Alice")

复制插入

输出:

 

复制插入

Hello Alice
You are 25 years old

复制插入

  1. 默认参数:在函数定义时可以为参数提供默认值,如果调用函数时不提供对应的实参,则会使用默认值。
 

python复制插入

def greet(name, age=20):
    print("Hello", name)
    print("You are", age, "years old")

greet("Alice")

复制插入

输出:

 

复制插入

Hello Alice
You are 20 years old

复制插入

  1. 可变参数:传递不定数量的实参给函数,可以使用*args来接收一个包含所有实参的元组,或使用**kwargs来接收一个包含所有关键字实参的字典。
 

python复制插入

def greet(*names):
    for name in names:
        print("Hello", name)

greet("Alice", "Bob", "Charlie")

复制插入

输出:

 

复制插入

Hello Alice
Hello Bob
Hello Charlie

复制插入

这些只是一些使用实参的示例,实参的使用方法可以根据需求灵活使用。

7.函数返回值

函数返回值是指函数执行完毕后通过return语句返回的结果。可以将返回值赋值给一个变量,或者直接在函数调用时使用。可以返回任何数据类型,包括整型、浮点型、字符串、列表、字典等。

以下是一个简单的例子,演示了函数返回值的用法:

 

python复制插入

def add_numbers(a, b):
    sum = a + b
    return sum

result = add_numbers(3, 4)
print(result)  # 输出7

复制插入

在这个例子中,函数add_numbers接收两个参数a和b,将它们相加得到sum,并通过return语句返回了sum。然后,在函数调用时将返回值赋值给了变量result,并打印了result的值,结果为7。

在Python中,函数的参数类型是可选的,也就是说你可以选择是否指定参数的类型。Python中使用类型提示来注释函数的参数类型,用于给开发者和IDE工具提供类型信息。以下是一些常见的函数参数类型的示例:

8.函数的参数类型

  1. 单个参数类型:
 

python复制插入

def greet(name: str) -> str:
    return "Hello, " + name

复制插入

这个示例中,参数name的类型为str,函数的返回类型也为str。

  1. 多个参数类型:
 

python复制插入

d
ef add(a: int, b: int) -> int:
    return a + b

复制插入

这个示例中,参数a和b的类型都为int,函数的返回类型也为int。

  1. 默认参数类型:
 

python复制插入

ef multiply(a: int, b: int = 2) -> int:
    return a * b

复制插入

这个示例中,参数a的类型为int,参数b的类型也为int,默认值为2,函数的返回类型也为int。

需要注意的是,Python的类型提示只是一种提示,不会在运行时进行类型检查,因此仍然可以传递任何类型的参数给函数。类型提示主要是为了提供开发者和工具更好的开发体验,帮助检查代码的正确性和提供代码补全等功能。

9.匿名函数:

匿名函数也被称为lambda函数,是一种没有函数名的小型函数。它可以在需要函数的地方进行定义和使用。

匿名函数的语法格式如下:
lambda 参数列表: 表达式

例如,我们可以定义一个匿名函数来计算两个数的和:

add = lambda x, y: x + y
print(add(2, 3))  # 输出:5

匿名函数可以有多个参数,也可以没有参数。表达式部分只能包含一个表达式,而不能包含多个语句。

匿名函数通常用于简单的函数操作,可以被用作参数传递给其他函数,或者用于列表解析、map、filter等函数中。但由于匿名函数没有函数名,所以无法递归调用自身。

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值