2.Python+童心派(初识库)

本文介绍了Python库的概念,将其比喻为生活中的仓库,用于存放和调用功能代码。文中以Python库cyberpi为例,详细讲解了如何通过导入库来实现音频播放、LED灯控制、控制台打印和设备感应等功能。同时阐述了API作为开发者与使用者之间的接口,用于说明库中函数的使用方法。通过实例展示了如何利用cyberpi库的特定API实现不同操作,如播放音频、控制LED灯和检测设备状态。
摘要由CSDN通过智能技术生成

什么是库?

我们可以思考一下,那就是生活中的一些仓库,我们会将很多需要使用的工具堆积(存放)在仓库中,当需要使用的时候,我们就会从仓库中取出(调取,调用)这样的工具。其实这样一个简单的例子,就是仓库的定义。

Python库是参考其它编程语言的说法,就是指Python中完成一定功能的代码集合,供用户使用的代码组合。在Python中是包和模块的形式,一般按照API的惯例来设计库。

那什么又是API呢?

其实它有两种,一种是数据API,另一种是库的API,这边我们简单了解一下库的API。库的API很好理解,就是一个人写了一个Python库,他要找一个地方告诉你库里的每个函数接什么样的参数,一个对象可以调用什么样的方法(函数),这个地方可以称为API。它其实是开发者和使用者之间的一个桥梁,一个接口。


库的定义是什么?

其实很简单,库的定义就和我们生活中的仓库很相像。比如说我们需要去做一件事情的时候,往往需要去借助一些工具帮助我们更加高效的完成工作,但我们不是孙悟空,不会七十二变,且手上一般都没有现成的东西,这个时候就需要我们去找一些工具协助工作。
 

例如:医生会有他的一个医药箱,工人叔叔会有他的工具箱。他们在工作中需要用到某种工具的时候,就会到工具箱里面去寻找,其实这个工具箱就相当于是我们Python中的库。

经过这样的比喻之后,我们就可以更加清晰的明白。
很多时候我们想实现一些Python功能的话,就可以去我们对应的库中,调用这些功能。

接下来我们简单举个例子来了解一下:
之前我们在学习中对于童心派设备的认知已经有很多了,基本上可以了解到童心派的功能和作用,
其中就包括(播放、灯光、显示、感知、体感)等等。
    
问题:如果说我们现在要做一个播放音频文件或者声音的程序,应该怎么办呢?
其实童心派已经解决了这个问题,制作同心派的开发人员,他把一些简单的功能罗列到一起,整理成了一个第三方的库(开源免费),那么在这个库里面我们就可以实现直接调用一些功能。

例:

# 导包(童心派的内置库)
import cyberpi # 或 from cyberpi import *

# 播放预置的音频文件,该API会阻塞线程直至音频播放结束。
# 参数:cyberpi.audio.play_until(music_name)
# music_name str,有效范围和对应音频效果见表
cyberpi.audio.play_until('hi')

将这段程序上传到设备(童心派),就可以实现设备播放音乐"Hi。 

注意:程序的开头一定要输入 "import cyberpi"(导包),这段程序的含义就是 “调用童心派中关于Cyberpi库的程序使用”。

如果没有这段程序,那会有什么样的情况出现呢?
我们可以发现如果没有进行库的引用,那么是没有办法执行下面程序功能的,设备显示屏上会出现一段红字,显示报错。

再例如,点亮童心派上LED灯珠,该API有两种使用方法

cyberpi.led.on(r, g, b, id = 'all'):

1.cyberpi.led.on("r", id = 'all')   
    点亮整个灯条,亮为红色,all = 全部灯条,共5条。
  cyberpi.led.on("red")
    只指定颜色,不指定id,则默认开启全部灯条。
  cyberpi.led.on(255, 0, 0)   
    同样是只指定颜色(红色),参数依次对应:颜色、饱和度、亮度。
  
2.cyberpi.led.on("red", id = 1)   
    将灯带上第1个位置的灯珠,亮为红色。
    参数:颜色(str),指定位置(id = 1-5之间) 

cyberpi.led.on(255, 0, 0, "all")

console:意思是在控制台交互模式下可以实现,那么这段程序就可以理解为在我们的控制台打印,显示出括号内的内容。

这样子我们显示屏上面就可以实现打印出"Hello World"的文字文本。

例:

cyberpi.console.print('Hello')
cyberpi.console.print('World')

感知:cyberpi.controller.is_press(name)

判断对应按钮或摇杆是否被触发,

参数:name(str),代表判断被触发按钮或摇杆的名字。有效范围有:

"a":按钮A(方形)
"b":按钮B(三角形)
"up":摇杆向上拨动
"down":摇杆向下拨动
"left":摇杆向左拨动
"right":摇杆向右拨动
"middle":摇杆中间按下
"any_direction":摇杆朝任意方向拨动
"any_button":按钮A或B
"any":任意按钮或摇杆触发

# 例如:
impot cyberpi

# 上传之后,主要我们按键a按下,就可以实现播放声音“beeps”。
while True:
    if cyberpi.controller.is_press("a"):
       cyberpi.audio.play('beeps')
        

体感:cyberpi.is_tiltforward(),判断童心派是否向前倾斜。

# 例如:

import cyberpi

# 上传到设备之后,就可以实现只要我们的设备向前倾斜,就会发出指定的声音(如:beeps)。
while True:
    if cyberpi.is_tiltforward():
       cyberpi.audio.play('beeps')
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值