优秀的编程知识分享平台

网站首页 > 技术文章 正文

乐高python编程入门——函数、模块与包

nanyue 2024-10-01 13:08:24 技术文章 9 ℃

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



01

函数


Python中函数分为内置函数和自定义函数。


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

print(*objects, sep=' ',end='\n', file=sys.stdout, flush=False)

*objects 可变参数,可以传入多个对象用于输出打印

sep 多个对象输出在一行,中间使用sep进行分割

end print函数在一次调用后输出打印以end结尾,默认是以\n结尾,因此一次print会输出一行数据

file, 指定print会将*objects输出到哪里,默认输出到标准输出,也可以输出到文件中

flush 如果为True,则不会进行缓存,而是强制刷新,如果为False,是否缓存取决于file参数传入的对象


自定义函数语法:

def functionName(arguments):
    code

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

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


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

def distanceFromZero(x,y):
    p=math.sqrt(x**2+y**2)
    return p

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

print(distanceFromZero(3,4))

结果输出:5


02

模块与包


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


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


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


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

import Distance


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


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


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

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

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


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

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


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

from lego.spike.sensor import color
color.get_color()
最近发表
标签列表