版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3/10/20241物联网技术及应用
统计姓名和学号
3/10/20242统计姓名和学号Python数据结构3/10/20243统计姓名和学号(1)列表列表中包含元素,相邻元素之间需要用“,”隔开,且列表中所有元素要放在“[]”中。列表的格式如下:列表名称=[元素1,元素2,…,元素n]liebiao1=[8,’python’,”人生苦短,我用Python”,[“物联网”,”云计算”,”大数据”]]举个例子:列表名称元素1元素3元素4元素23/10/20244统计姓名和学号如果列表中没有元素,创建一个空列表:emptylist=[]列表创建好之后,我们可以使用for循环来遍历列表:liebiao1=[8,'python',"人生苦短,我用Python",["物联网","云计算","大数据"]]forjinliebiao1:print(j)3/10/20245统计姓名和学号liebiao1=[8,'python',"人生苦短,我用Python",["物联网","云计算","大数据"]]print(liebiao1[0])print(liebiao1[1])print(liebiao1[2])print(liebiao1[3])采用下标访问指定列表元素:运行结果:3/10/20246统计姓名和学号(2)字典定义字典时,所有元素放在{}中,每个元素都包含“键”和“值”两部分内容,相邻元素之间用逗号分隔。字典的语法格式如下:dictname={'key':'value1','key2':'value2',...,'keyn':valuen}一个元素字典名称元素的键元素的值3/10/20247统计姓名和学号同一字典中的元素各个键必须唯一,不能重复;键是不可变的,字符串、元组和整数都可以作为键。注意:3/10/20248统计姓名和学号
#使用字符串作为keydict1={'数学':90,'科学':95,'语文':85}print(dict1)创建字典举例1:创建字典举例2:#使用元组和数字作为keydict2={(10,30):'good',10:[4,5,6]}print(dict2)3/10/20249统计姓名和学号创建字典举例3:#创建空字典dict3={}print(dict3)三个案例的运行结果:3/10/202410统计姓名和学号dict1={'数学':90,'科学':95,'语文':85}print(dict1['科学'])如何访问字典中的某一个元素?打印结果:3/10/202411统计姓名和学号3/10/202412小结列表字典Python的两种数据类型:3/10/202413Thankyou3/10/202414物联网技术及应用
模块引入
3/10/202415模块引入哥白尼,布鲁诺,开普勒还有伽利略等科学巨人哥白尼,布鲁诺,开普勒还有伽利略等3/10/202416模块引入Python也是站在巨人的肩膀上3/10/202417模块引入(1)创建一个模块3/10/202418模块引入if__name__==“__main__”:双下滑线空格3/10/202419模块引入引入模块采用关键字import,表示导入模块,用法为:import模块名mokuai2.py运行模块引入从mokuai2.py的角度去看,只能导入这部分内容,下面的if语句是不导入的mokuai2.py中增加调用mokuai1的函数。调用格式为:模块名.函数模块引入保存mokuai2.py,并运行mokuai2.py模块引入以time模块为例,导入time库,调用time库中的sleep(delaytime)函数,函数功能为延迟delaytime时间,入参单位为秒。importtimeforiinrange(5): print("helloworld") time.sleep(5)#延迟5s3/10/202423小结创建模块,引入模块(关键字import)模块私有部分if__name__==“main”:模块名.函数/变量3/10/202424任务练习创建文件mokuai.py。在mokuai.py中导入math库。在mokuai.py中定义计算圆形周长的函数,入参为圆形半径,周长计算公式中的π采用math.pi来表示。打印计算的周长值。调用函数,计算圆形半径为1的圆形周长。3/10/202425Thankyou3/10/202426物联网技术及应用
变量未定义异常处理
3/10/202427变量未定义异常处理根据变量的作用范围,一般可以划分为两种:全局变量全局变量是在函数体内和函数体外都能使用的变量,全局变量的定义是需要放在函数体外的。局部变量局部变量是一种作用在函数体内的变量,只能在函数体内使用3/10/202428变量未定义异常处理value=3defb1():print(value)defb2(): value=2print(value)b1()b2()print(value)这段代码的运行结果是什么呢?代码示例:3/10/202429变量未定义异常处理3/10/202430变量未定义异常处理局部变量全局化:global局部变量函数体内变量的全局化可以加一个global关键词定义,格式如下:变量未定义异常处理变量未定义异常处理value=3defb1():print(value)defb2():
globalvaluevalue=2print(value)b1()b2()print(value)增加一句globalvalue这段代码的运行结果又是什么呢?代码示例:变量未定义异常处理Python中异常处理可以采用try…except语句。具体格式为:try:
语句1except:
语句23/10/202434变量未定义异常处理try:
语句1except异常码:
语句2带有异常码的格式:try:
语句1exceptKeyboardInterrupt:
语句2键盘中断异常码3/10/202435变量未定义异常处理defshifanyanshi1(): globalj j=10defdayinghanshu(): try: print(j) except: print("tryerror")dayinghanshu()shifanyanshi1()dayinghanshu()3/10/202436小结全局变量局部变量try……except……语句3/10/202437任务练习定义loop()函数,函数功能为循环打印“helloworld”,如果遇到键盘中断则退出循环,并打印输出“keyboardinterrupthappens”。调用loop函数运行,查看运行结果。定义全局变量k,赋值为字符串类型“quanjubianliang”,编写函数1,函数1中对该全局变量k进行重新赋值“newvalue”,打印变量k。编写函数2,函数2中定义局部变量k,k=“jububianliang”,打印变量k。调用a1(),a2()函数,并打印变量k。查看运行结果。3/10/202438Thankyou3/10/202439物联网技术及应用
类的创建及使用
3/10/202440类的创建及使用面向过程:将衣服扔进盆里→放入洗涤剂→放水→浸泡衣服→清洗衣服→拧干衣服→晒衣服面向对象:现在将这个洗衣服的部分流程动作(放水,浸泡衣服,清洗衣服,拧干衣服)赋予给了洗衣机,这时候对象诞生了,就是洗衣机!3/10/202441类的创建及使用空间站:3/10/202442类的创建及使用创建类创建__init__()方法创建其他方法属性3/10/202443类的创建及使用(1)创建类定义类采用关键字class实现,定义格式如下:class类名: “类的注释信息”
类体#具体内容,包含属性、方法等。3/10/202444类的创建及使用3/10/202445类的创建及使用(2)创建__init__()方法创建类通常也会创建一个__init__()函数,该函数的第一个入参固定为self,其后还可以增加其他入参。每次创建该类的实例时,__init__()函数都会执行一遍,而不需要单独调用。这就避免了有些代码重复,从而简化代码。3/10/202446类的创建及使用3/10/202447类的创建及使用(3)创建其他方法在类中,变量称之为类属性,函数称为类实例方法。除了__init__(self)方法外,还可以创建其他的函数。和__init__(self)方法不同的是,其他的函数要通过实例化访问后才可以执行,不会自动执行。和__init__(self)方法相同的是,创建的其他函数必须包含第一个入参self,其他入参可以根据需要设定,也可以没有。3/10/202448类的创建及使用3/10/202449类的创建及使用(4)属性python中属性细分一下有三种:类属性定义在类中且在类函数之外的变量方法属性定义在类函数中的变量方法转换属性将类函数转换为私有属性的情况3/10/202450类的创建及使用在python语言中,默认的创建的类属性和实例方法都是可以在类体外进行修改的,如果要限制其在类体外修改,可以设置为私有属性,变成只读内容。设置私有属性采用@property关键词,则可以将方法转换为私有属性。3/10/202451类的创建及使用classfruit: aa="统计个人水果爱好"#类属性 def__init__(self,xingming,zhonglei): print("initstarts") self.xingming=xingming#方法属性
self.zhonglei=zhonglei#方法属性print(fruit.aa) @property#方法转换属性 deftongji(self): return(str(self.xingming)+"最爱吃的是"+str(self.zhonglei))shuiguo=fruit("小红","苹果")print(shuiguo.xingming)print(shuiguo.aa)print(shuiguo.tongji)3/10/202452类的创建及使用classfruit: aa="统计个人水果爱好"#类属性 def__init__(self,xingming,zhonglei): print("initstarts") self.xingming=xingming#方法属性
self.zhonglei=zhonglei#方法属性print(fruit.aa) @property#方法转换属性 deftongji(self): return(str(self.xingming)+"最爱吃的是"+str(self.zhonglei))shuiguo=fruit("小红","苹果")print(shuiguo.xingming)print(shuiguo.aa)print(shuiguo.tongji)3/10/202453类的创建及使用classfruit: aa="统计个人水果爱好"#类属性 def__init__(self,xingming,zhonglei): print("initstarts") self.xingming=xingming#方法属性
self.zhonglei=zhonglei#方法属性print(fruit.aa) @property#方法转换属性 deftongji(self): return(str(self.xingming)+"最爱吃的是"+str(self.zhonglei))shuiguo=fruit("小红","苹果")print(shuiguo.xingming)print(shuiguo.aa)print(shuiguo.tongji)3/10/202454小结类的创建Init方法类其他方法属性3/10/202455任务练习定义一个类,类名为vegetables。vegetables类中创建__init__()方法,需要增加两个参数xingming和zhonglei,功能为打印“蔬菜的品种有很多”。将xingming和zhonglei两个参数分别赋值到新定义的两个方法属性中。创建方法1,函数名为shucai,功能为打印字符串:xingming+"最喜欢的蔬菜是"+zhonglei。创建方法2,函数名为mytaste,功能为打印字符串:xingming+"最喜欢的蔬菜是"+zhonglei。将方法2转换成私有属性。实例化类,实例化名称为veg1,入参为"小强","西兰花"。采用veg1访问shucai。重新赋值方法属性zhonglei为“青菜”,再访问一次shucai。实例化类,实例化名称为veg2,入参为"小明","胡萝卜",采用veg2访问mytaste,重新赋值方法属性zhonglei为“洋葱”,再访问一次shucai。3/10/202456Thankyou3/10/202457物联网技术及应用
蜂鸣器报警
3/10/202458蜂鸣器报警生活中常见的各种报警装置3/10/202459RPi.GPIO是一个包含了树莓派GPIO引脚控制的库,官方的树莓派系统中默认已经安装了RPi.GPIO。importRPi.GPIOasGPIO#as表示重命名蜂鸣器报警RPi.GPIO库3/10/202460蜂鸣器报警使用RPi.GPIO库,需要了解RaspberryPi上的IO引脚编号:WiringPiBCM功能名物理引脚功能名BCMWiringPi
3.3V125V
82SDA.1345V
93SCL.156GND
74GPIO.778TXD1415
GND910RXD1516017GPIO.01112GPIO.1181227GPIO.21314GND
322GPIO.31516GPIO.4234
3.3V1718GPIO.52451210MOSI1920GND
139MISO2122GPIO.62561411SCLK2324CE0810
GND2526CE1711300SDA.02728SCL.0131215GPIO.212930GND
226GPIO.223132GPIO.2612262313GPIO.233334GND
2419GPIO.243536GPIO.2716272526GPIO.253738GPIO.282028
GND3940GPIO.2921293/10/202461在RPi.GPIO中,引脚编号方式常用的有三种,第一种是使用BOARD编号系统第二种是BCM编号系统第三种是WiringPi编号3/10/202462RPi.GPIO库中常用的函数介绍蜂鸣器报警GPIO.setmode(boardmode)函数GPIO.setup(pin,mode)GPIO.PWM(pin,frequency)函数GPIO.setwarnings(True/Flase)函数GPIO.input(pin)函数GPIO.output(pin,value)函数GPIO.cleanup()函数3/10/202463GPIO.setmode函数GPIO.setmode(GPIO.BCM/GPIO.BOARD)函数的功能是设置树莓派引脚的编号方式。参数可以是BCM模式或者BOARD模式。如果是C语言编程还可以是wringPi编号方式。蜂鸣器报警3/10/2024642.GPIO.setup(pin,mode)函数的功能是设置树莓派引脚的模式。函数共有两个参数,第一个参数pin代表树莓派引脚,取值范围为1~40。第二个参数mode为要设置的引脚模式,一般有两种,GPIO.IN模式和GPIO.OUT模式。GPIO.IN模式表示该引脚为输入模式,GPIO.OUT模式表示该引脚为输出模式。如果需要对输出模式的引脚设置初始电平,GPIO.setup(pin,GPIO.OUT,initial=GPIO.HIGH)或GPIO.setup(pin,GPIO.OUT,initial=GPIO.LOW)。蜂鸣器报警3/10/2024653.GPIO.PWM函数GPIO.PWM(pin,frequency)函数的功能是设定引脚pin的驱动PWM方波,第二个参数frequency表示方波频率。通常GPIO.PWM函数需要实例化后使用启动和停止操作,例如:gpiopwm=GPIO.PWM(pin,frequency),启动PWM采用gpiopwm.start(dutyration),参数dutyration表示方波占空比,取值范围为0~100。关闭PWM则采用gpiopwm.stop(),无需参数。蜂鸣器报警3/10/2024664.GPIO.setwarnings函数
GPIO.setwarnings(False)函数的功能是移除告警。
GPIO.setwarnings(True)函数的功能是保留告警。5.GPIO.input函数GPIO.input(pin)函数的功能是读取引脚pin的值。6.GPIO.output函数GPIO.output(pin,value)函数的功能是输出value值给引脚pin。value可以是1,表示输出高电平给引脚pin。Value如果是0,表示输出低电平给引脚pin。蜂鸣器报警3/10/2024677.GPIO.cleanup函数GPIO.cleanup()函数的功能是清除脚本中的编号方式以及释放脚本中使用到的引脚。通常在脚本文件最后使用,相当于格式化引脚。蜂鸣器报警3/10/202468
蜂鸣器,采用直流电压供电,是一种常见的发声器件,广泛应用于电子计算机、报警器、玩具等等领域。
无源蜂鸣器具有如下优点:价格便宜、结构简单、使用方便可以调节频率,发出不同的声音蜂鸣器报警3/10/202469扩展板中蜂鸣器电路图原理图默认为BCM编码方式,如果设置为BOARD编码方式:GPIO.setmode(GPIO.BOARD),则蜂鸣器的引脚编号是?蜂鸣器报警3/10/202470蜂鸣器报警物理引脚即BOARD编码方式,BCM和BOARD对应关系WiringPiBCM功能名物理引脚功能名BCMWiringPi
3.3V125V
82SDA.1345V
93SCL.156GND
74GPIO.778TXD1415
GND910RXD1516017GPIO.01112GPIO.1181227GPIO.21314GND
322GPIO.31516GPIO.4234
3.3V1718GPIO.52451210MOSI1920GND
139MISO2122GPIO.62561411SCLK2324CE0810
GND2526CE1711300SDA.02728SCL.0131215GPIO.212930GND
226GPIO.223132GPIO.2612262313GPIO.233334GND
2419GPIO.243536GPIO.2716272526GPIO.253738GPIO.282028
GND3940GPIO.2921293/10/202471蜂鸣器报警任务要求:使用板载自带蜂鸣器循环播放一首歌曲。任务效果:以上海滩的简谱为例,播放上海滩简谱纯音乐。3/10/202472Buzzer=11def
setup():
#初始化函数
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
#
设置树莓派编号方式
GPIO.setup(Buzzer,
GPIO.OUT)
#
设置蜂鸣器引脚模式为输出模式
global
Buzz
Buzz
=
GPIO.PWM(Buzzer,
440)
#
给蜂鸣器PWM驱动方波,初始频率为440
Buzz.start(50)
#
设定PWM占空比50%初始化蜂鸣器报警3/10/202473def
loop():
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级音乐上教案
- 上海市县(2024年-2025年小学五年级语文)人教版期末考试(上学期)试卷及答案
- 一年级数学(上)计算题专项练习集锦
- DB11T 1122-2014 养老机构老年人健康档案技术规范
- 消防电各设备技术规格书
- 福建省泉州市晋江市安海镇五校2024-2025学年九年级上学期期中化学试题含答案
- 墨水笔的充墨笔芯产业规划专项研究报告
- 信纸夹产业深度调研及未来发展现状趋势
- 婴儿抱枕产业深度调研及未来发展现状趋势
- 化妆用着色制剂产业深度调研及未来发展现状趋势
- 民事案件卷宗目录封面11
- 基础图案设计(课堂PPT)
- 2022年2022年古籍样式排版模板
- 艺术装饰艺术运动
- 樊登读书会营销策略分析
- 建设单位安全生产管理体系(完整版)
- 国潮风喜迎中秋节传统节日介绍主题班会PPT模板
- 幼儿园参观学校活动方案5篇
- 苏州大学实验报告专用纸
- 盾构施工管片防水材料粘贴作业指导书
- 《电动汽车》课件(PPT)
评论
0/150
提交评论