Lemon's blog

python学习(函数)

Record my learning process of python.

字数统计: 1.3k阅读时长: 4 min
2019/08/28 Share

前言:目前先将python的基础语法和知识学完,再去尝试写脚本,这次就学习python中的函数。

一、定义函数

使用关键字def 来定义一个函数,这就是函数定义,而且定义以冒号结尾。

格式:

1
2
3
4
5
def  函数名 :

内容

函数名

例如:

1
2
3
4
5
6
def message():
"""打印的信息"""
print("hello world")
message()
输出结果:
hello world

"""打印的信息"""被称为文档字符串的注释,文档字符串用三引号括起来。

二、向函数传递信息

1
2
3
4
5
def message(username):
"""打印的信息"""
print("hello,"+username.title())
#调用函数
message('lemon')

在这里插入图片描述
通过这个例子可以知道,在定义函数时括号内添加了username ,我们在调用的时候可以赋任何值给username

三、位置实参

调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。最简单的关联方式是基于实参的顺序,这就算位置参数。

在这里插入图片描述
调用函数多次,如:
在这里插入图片描述
应注意在函数调用时实参的顺序与函数定义中形参的顺序是否一致

关键字实参

关键字实参是传递给函数的名称—值对,直接在实参中将名称和值关联起来,因此向函数传递实参时不会混淆.

在这里插入图片描述
关键字实参明确地指出了各个实参对应的形参,因此不会出现因为顺序而混淆的情况。

默认值

编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时,Python将使用指定的实参值;否则,将使用形参的默认值。

在这里插入图片描述
使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。这样才能够正确地解读位置实参。

四、返回值

函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值 。

返回简单的值
在这里插入图片描述
相较于之前,需要再次调用函数并赋值有些麻烦,返回值直接是赋值给一个变量,我们通过打印出这个变量即可得出相应的值。

让实参变成可选的

有时候,需要让实参变成可选的,这样使用函数就可以提供额外的信息。
可使用默认值来让实参变成可选的。

在这里插入图片描述
这里用一个if语句来进行判断middle_name是否存在,通过这样的判断,就可以打印出不同的情况,这里便是将middle_name变成可选的。

返回字典

函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。

在这里插入图片描述
full_name接收first_namelast_name,并将这些值封装到字典中.

同样可以增加一个可选值,如果存在则添加到字典中,并通过返回值赋值给变量
在这里插入图片描述

使用函数和while循环
在这里插入图片描述

五、传递列表

将列表传递给函数后,函数就能直接访问其内容

在这里插入图片描述
通过把列表传递给函数,提高效率

传递任意数量的实参

在这里插入图片描述
形参名*toppings 中的星号让Python创建一个名为toppings 的空元组,并将收到的所有值都封装到这个元组中
在这里插入图片描述
不管收到的是一个值还是三个值,函数都能妥善地处理

结合使用位置实参和任意数量实参

如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后。Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。

在这里插入图片描述
Python将收到的第一个值存储在形参size 中,并将其他的所有值都存储在元组toppings中

使用任意数量的关键字实参
在这里插入图片描述
结果:

1
{'first_name': 'albert', 'last_name': 'einstein', 'location': 'princeton', 'field': 'physics'}

形参**user_info 中的两个星号让Python创建一个名为user_info 的 空字典,并将收到的所有名称—值对都封装到这个字典中。 然后遍历字典user_info 中的键—值对,并将每个键—值对都加入到字典profile 中。

六、将函数存储在模块中

导入整个模块

模块 是扩展名为.py的文件,包含要导入到程序中的代码

只需编写一条import 语句并在其中指定模块名,就可在程序中使用该模块中的所有函数。

例如:
使用这种import 语句导入了名为module_name.py 的整个模块,就可使用下面的语法来使用其中任何一个函数:

1
module_name.function_name()

导入特定的函数

1
from module_name import function_name

通过用逗号分隔函数名,可根据需要从模块中导入任意数量的函数:

1
from module_name import function_0, function_1, function_2

使用as给函数指定别名
在这里插入图片描述
函数make_pizza() 指定了别名mp()

指定别名通用语法:

1
from module_name import function_name as fn

使用as给模块起别名
在这里插入图片描述
导入模块中的所有函数
使用星号(* )运算符可让Python导入模块中的所有函数

1
from module_name import *
CATALOG
  1. 1. 一、定义函数
  2. 2. 二、向函数传递信息
  3. 3. 三、位置实参
  4. 4. 四、返回值
  5. 5. 五、传递列表
  6. 6. 六、将函数存储在模块中