网站首页 > 技术文章 正文
“ 根据我们之前了解到的数据类型、表达式、条件语句、循环语句,我们已经可以编写简单的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()
猜你喜欢
- 2024-10-01 利用神经网络模型检测摄像头上的可疑行为
- 2024-10-01 使用神经网络的自动化特征工程(神经网络的特点及使用场景)
- 2024-10-01 Python基础学习必备的8个最常用的内置函数
- 2024-10-01 利用Click和argparse给你Python程序构建一个优雅的命令行界面
- 2024-10-01 langchain中的LLM模型使用介绍(llvm 分析)
- 2024-10-01 学习Python内置函数(range)来打印数学乘法表
- 2024-10-01 Python 100天 15:print("hello world")茴香豆的写法
- 2024-10-01 python3入门实例一:Hello World(python的hello world程序编写)
- 2024-10-01 python基础篇:讲讲python的内置函数一
- 2024-10-01 Python3中的print函数(python里的print函数)
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)