编程语言应用

注册

 

发新话题 回复该主题

乐高python编程入门函数模块与 [复制链接]

1#

根据我们之前了解到的数据类型、表达式、条件语句、循环语句,我们已经可以编写简单的python程序,但是在实践应用中,我们往往需要对一些功能或者代码重复执行,这个时候就需要用到python提供的函数功能

01

函数

Python中函数分为内置函数和自定义函数。内置函数中最常见的就是之前例子中一直使用的print()输出函数,其完整语法为:

print(*objects,sep=,end=\n,file=sys.stdout,flush=False)*objects可变参数,可以传入多个对象用于输出打印sep多个对象输出在一行,中间使用sep进行分割endprint函数在一次调用后输出打印以end结尾,默认是以\n结尾,因此一次print会输出一行数据file,指定print会将*objects输出到哪里,默认输出到标准输出,也可以输出到文件中flush如果为True,则不会进行缓存,而是强制刷新,如果为False,是否缓存取决于file参数传入的对象自定义函数语法:

deffunctionName(arguments):code

这里的参数arguments是可选的,可以是一个也可以是多个,如果是多个就用逗号(,)分隔开;

每个函数同样也有一个返回值,默认为None(空),如果我们需要返回一个值,那么可以采用returnvalue的形式返回value值。

比如说我们在一个程序中需要频繁的计算实时位置到原点之间的距离,那么我们可以自定义一个计算距离的函数distanceFromZero(x,y)/p>

defdistanceFromZero(x,y):p=math.sqrt(x**2+y**2)returnp

其中参数x,y为当前位置坐标,调用该函数如下:

print(distanceFromZero(3,4))

输出结果:5

02

模块与包

当我们自定义的函数在多个程序中需要使用的时候,不需要将该函数复制到多个程序中,我们可以引入模块(Module)的概念。

模块(Module)是一个以.py结尾的python文件,里面可以包含变量、函数以及类(具体后续会介绍)。

比如我们将前面自定义的计算距离的函数单独存放在一个文件中,命名为Distance.py,那么这个文件就是一个模块,名字叫Distance;

我们可以采用以下方式引用模块:

importDistance

当模块比较多的时候,我们可以按照一定逻辑对模块进行分类放在不同的文件夹,比如我们可以将跟传感器有关的模块都放到sensor文件夹里,这样会使得整个项目比较清晰,而且易于管理。

称之为包的文件夹中必须含有一个名为__init__.py的文件,该文件可以为空,包与模块的关系类似于文件夹与文件的关系,包里面还可以包含子包;

我们采用点(.)操作符来从包中引用模块。

比如我们有上图所示的包与模块,那么我们采用下面的方式来调用包、模块以及函数:

importlego.spike.sensor.color#从包中引入color模块;

如果color模块中有get_color()函数,那么

lego.spike.sensor.color.get_color()#引用后调用get_color()函数

还可以采用以下方式调用:

fromlego.spike.sensorimportcolorcolor.get_color()

分享 转发
TOP
发新话题 回复该主题