物联网Python编程实战 习题答案_第1页
物联网Python编程实战 习题答案_第2页
物联网Python编程实战 习题答案_第3页
物联网Python编程实战 习题答案_第4页
物联网Python编程实战 习题答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课后习题答案单元一请阐述物联网系统网络的组成?物联网的体系架构可以分为三个主要层次:感知层、网络层和应用层。感知层:这一层是物联网体系架构的最底层,主要负责识别物体、采集信息。在这一层,大量的传感器和执行器被部署在物理环境中,用于监测温度、湿度、光线、压力等物理参数,或者控制设备的开关等操作。这些传感器和执行器通过各种接口与网络层相连,将收集到的数据发送到网络层进行处理。网络层:这一层是物联网体系架构的核心,主要负责信息的传递和处理。在感知层收集到的数据需要通过各种网络协议(如Wi-Fi、ZigBee、LoRa等)传输到网络层。在网络层,这些数据被进一步处理、存储和分析,以便为上层的应用提供支持。应用层:这一层是物联网体系架构的最顶层,是物联网和用户的接口。应用层将来自网络层的数据转化为有价值的信息,并根据业务需求对这些信息进行处理。例如,在智能家居中,应用层可以根据传感器采集的温度和湿度数据控制空调和加湿器的开关;在智能农业中,应用层可以根据土壤湿度和光照强度等参数控制灌溉系统和照明设备的开关。物联网应用技术中常用的通信手段有哪些?无线传感网(WSN)、蓝牙、Wi-Fi、GSM、Zigbee、LoRaPython语言有何特点?简单易学,语法清晰,结构简单,关键字少面向对象,支持多种编程范式可移植性,跨平台兼容,开源解释性,无需编译,易于调试可扩展性,可以用C或C++扩展新功能和数据类型Python语言在物联网方向有哪些典型的应用?数据采集与处理:Python可以通过各种传感器和设备采集数据,并利用强大的数据处理和分析库对数据进行处理和分析,为后续的应用提供支持。设备控制与自动化:Python可以通过各种通信协议(如MQTT、Modbus等)控制和自动化设备,实现设备的远程控制和自动化操作。数据分析与可视化:Python可以利用丰富的数据分析库对采集的数据进行深入分析,并通过可视化技术将结果呈现出来,帮助用户更好地理解和分析数据。应用开发和集成:Python可以与其他编程语言和系统集成,实现各种复杂的应用开发和集成,如智能家居、工业自动化等。单元二一、选择题1.Python程序文件的扩展名是(D)。A..pythonB..pytC..ptD..py2.以下叙述中正确的是(C)。A.Python3.x与Python2.x兼容B.Python语句只能以程序方式执行C.Python是解释型语言D.Python语言出现得晚,具有其他高级语言的一切优点3.下列选项中合法的标识符是(A)。A._7a_bB.breakC._a$bD.7ab4.Python不支持的数据类型有(A)。A.char B.int C.float D.list5.关于Python中的复数,下列说法错误的是(D)。A.表示复数的语法形式是a+bjB.实部和虚部都必须是浮点数C.虚部必须加后缀j,且必须是小写D.函数abs()可以求复数的模6.函数type(1+0xf*3.14)的返回结果是(D)。A.<class'int'>B.<class'long'>C.<class'str'>D.<class'float'>7.字符串s='a\nb\tc',则len(s)的值是(C)。A.7B.6C.5D.48.Python语句print(0xA+0xB)的输出结果是(D)。A.0xA+0xBB.A+BC.0xA0xBD.219.语句eval('2+4/5')执行后的输出结果是(A)。A.2.8 B.2C.2+4/5 D.'2+4/5'10.与数学表达式对应的Python表达式中,不正确的是(C)。A.c*d/(2*a*b)B.c/2*d/a/bC.c*d/2*a*bD.c*d/2/a/b11.为了给整型变量x,y,z赋初值10,下面正确的Python赋值语句是(C)。A.xyz=10B.x=10y=10z=10C.x=y=z=10D.x=10,y=10,z=1012.将数学式2<x≤10表示成正确的Python表达式为(B)。A.2<x<=10B.2<xandx<=10C.2<x&&x<=10D.x>2orx<=1013.以下if语句语法正确的是(D)。A.ifa>0:x=20else:x=200B.ifa>0:x=20else:x=200C.ifa>0:x=20else:x=200D.ifa>0:x=20else:x=20014.关于while循环和for循环的区别,下列叙述中正确的是(C)。A.while语句的循环体至少无条件执行一次,for语句的循环体有可能一次都不执行B.while语句只能用于循环次数未知的循环,for语句只能用于循环次数已知的循环C.在很多情况下,while语句和for语句可以等价使用D.while语句只能用于可迭代变量,for语句可以用任意表达式表示条件15.以下for语句中,不能完成1~10的累加功能的是(A)。A.foriinrange(10,0):sum+=iB.foriinrange(1,11):sum+=iC.foriinrange(10,-1):sum+=iD.foriin(10,9,8,7,6,5,4,3,2,1):sum+=i16.下列选项中不属于函数优点的是(D)。A.减少代码重复B.使程序模块化C.使程序便于阅读D.便于发挥程序员的创造力17.以下关于函数说法正确的是(D)。A.函数的实际参数和形式参数必须同名B.函数的形式参数既可以是变量也可以是常量C.函数的实际参数不可以是表达式D.函数的实际参数可以是其他函数的调用18.下列程序的运行结果是(B)。deff(x=2,y=0):returnx-yy=f(y=f(),x=5)print(y)A.-3B.3C.2D.519.下列程序的输出结果是(A)。x=10raiseException("AAA")x+=10print("x=",x)A.Exception:AAA B.10 C.20 D.x=2020.如果以负数作为平方根函数math.sqrt()的参数,将产生(C)。A.死循环B.复数C.ValueError异常D.finally二、填空题1.Python语句既可以采用交互式的命令执行方式,又可以采用程序执行方式。2.在Python集成开发环境中,可使用快捷键F5运行程序。3.Python语言通过缩进对齐来区分不同的语句块。4.使用math模块库中的函数时,必须要使用import语句导入该模块。5.表达式2<=1and0ornot0的值是True。6.当x=0,y=50时,语句z=xifxelsey执行后,z的值是50。6.执行循环语句foriinrange(1,5,2):print(i),循环体执行的次数是2。7.循环语句foriinrange(-3,21,4)的循环次数为6。8.函数首部以关键字def开始,最后以冒号结束。9.Python提供了一些异常类,所有异常都是Exception的成员。10.使用关键字global可以在一个函数中设置一个全局变量。三、问答题1.Python语言有哪些数据类型?数字型,字符串,列表,元组,集合,字典2.简述Python程序中语句的缩进规则。同一代码块的语句必须有相同的缩进。每一新的代码块(如:if语句,for循环,函数定义等)都需要增加一级缩进;通常每一级缩进使用4个空格。这是Python社区的推荐实践,也是大多数IDE和代码编辑器的默认设置。尽管Python语法允许使用任意数量的空格进行缩进,但混合使用不同数量的空格会使代码难以阅读,也可能导致错误;当一个代码块结束后,缩进应该回退到上一级代码块的缩进级别。3.Python基本输入输出通过哪些语句来实现?基于input()函数输入基于print()的函数输出4.什么叫循环结构?举例说明其应用。循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。根据判断条件,循环结构又可细分为以下两种形式:先判断后执行的循环结构和先执行后判断的循环结构。5.break语句和continue语句的区别是什么?break用于跳出一个循环体或者完全结束一个循环,不仅可以结束其所在的循环,还可结束其外层循环。continue语句的作用是跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为只是中止(跳过)本次循环,接着开始下一次循环。6.什么叫模块?如何导入模块?临时添加模块完整路径;将模块保存到指定位置;设置环境变量7.什么叫异常?异常处理有何作用?在Python中如何处理异常?异常处理(ExceptionHanding)是指在程序运行过程中对异常情况进行检测和处理的机制。在Python中,异常处理主要通过tryexcept、else和finally语句来实现。8.assert语句和raise语句有何作用?python可以自动触发异常(内置函数)的定义为显示的抛出异常,用户可以使用raise进行判断,显式的引发异常,raise执行后程序将不再向下执行。assert语句用于检测某个条件表达式是否为真。assert语句又称为断言语句,即assert认为检测的表达式永远为真。单元三一、选择题1.访问字符串中的部分字符的操作称为(A)。A.分片B.合并C.索引D.赋值2.下列关于字符串的描述错误的是(B)。A.字符串s的首字符是s[0]B.在字符串中,同一个字母的大小是等价的。C.字符串中的字符都是以某种二进制编码的方式进行存储和处理的D.字符串也能进行关系比较操作3.设s="PythonProgramming",那么print(s[-5:])的结果是(A)。A.mmingB.PythonC.mminD.Pytho4.将字符串中全部字母转换为大写字母的字符串方法是(D)。A.swapcaseB.capitalizeC.uppercaseD.upper5.下列Python数据中其元素可以改变的是(A)。A.列表B.元组C.字符串D.数组6.表达式“[2]in[1,2,3,4]”的值是(D)。A.YesB.NoC.TrueD.False7.max((1,2,3)*2)的值是(A)。A.3B.4C.5D.67.tuple(range(2,10,2))的返回结果是(C)。A.[2,4,6,8]B.[2,4,6,8,10]C.(2,4,6,8)D.(2,4,6,8,10)8.下列程序执行后,p的值是(A)。a=[[1,2,3],[4,5,6],[7,8,9]]p=1foriinrange(len(a)):p*=a[i][i]A.45B.15C.6D.289.下列Python程序的运行结果是(C)。s=[1,2,3,4]s.append([5,6])print(len(s))A.2B.4C.5D.610.对于字典D={'A':10,'B':20,'C':30,'D':40},len(D)的是(A)。A.4B.8C.10D.12二、填空题1."4"+"5"的值是‘45’。2.字符串s中最后一个字符的位置是len(s)-1。3.下面语句的执行结果是['A','A','A']。s='A'print(3*s.split())3.序列元素的编号称为索引,它从0开始,访问序列元素时将它用中括号括起来。4.对于列表x,x.append(a)等价于x.insert(len(x),a)(用insert方法)。5.设有列表L=[1,2,3,4,5,6,7,8,9],则L[2:4]的值是[3,4],L[::2]的值是[1,3,5,7,9],L[-1]的值是9,L[-1:-1-len(L):-1]的值是[9,8,7,6,5,4,3,2,1]。6.下列程序的运行结果是7。s1=[1,2,3,4]s2=[5,6,7]print(len(s1+s2))7.下列语句执行后,s值为[4,'x','y']。s=[1,2,3,4,5,6]s[:1]=[]s[:2]='a's[2:]='b's[2:3]=['x','y']dels[:1]8.在Python中,字典和集合都使用大括号作为定界符。字典的每个元素由两部分组成,即关键字和值,其中关键字不允许重复。9.设a=set([1,2,2,3,3,3,4,4,4,4]),则sum(a)的值是10。10.语句print(len({}))的执行结果是0。三、问答题1.什么叫字符串?有哪些常用的字符编码方案?2.数字字符和数字值(如'5'和5)有何不同?如何转换?3.假设某部门入职8位员工,现有3个办公室均有足够的空余工位,如何编程实现随机为这8位员工分配办公室?4.什么是空字典和空集合?如何创建?5.字典的遍历有哪些方法?单元四一、选择题1.下列说法中不正确的是(D)。A.类是对象的模板,而对象是类的实例B.实例属性名如果以__开头,就变成了一个私有变量C.只有在类的内部才可以访问类的私有变量,外部不能访问D.在Python中,一个子类只能有一个父类2.下列选项中不是面向对象程序设计基本特征的是(C)。A.继承B.多态C.可维护性D.封装3.在方法定义中,访问实例属性x的格式是(B)。A.xB.self.xC.self[x]D.self.getx()4.下列程序的执行结果是(D)。classPoint:x=10y=10def__init__(self,x,y):self.x=xself.y=ypt=Point(20,20)print(pt.x,pt.y)A.1020B.2010C.1010D.20205.下列程序的执行结果是(A)。classC():f=10classC1(C):passprint(C.f,C1.f)A.1010B.10passC.pass10D.运行出错二、填空题1.面向对象程序设计的三大特性包括封装、继承、多态。2.在Python中,定义类的关键字是class。3.类的定义如下:classperson:name=’Liming’score=90该类的类名是person,其中定义了name属性和score属性,它们都是公有属性。如果在属性名前加两个下划线(__),则属性是私有属性。将该类实例化创建对象p,使用的语句为p=person(),通过p来访问属性,格式为、p.score。4.可以从现有的类来定义新的类,这称为类的继承,新的类称为子类,而原来的类称为基类、父类或超类。5.创建对象后,可以使用.运算符来调用其成员。.6.下列程序的运行结果为100100。classparent:def__init__(self,param):self.v1=paramclasschild(parent):def__init__(self,param):parent.__init__(self,param)self.v2=paramobj=child(100)print(obj.v1,obj.v2)8.下列程序的运行结果为400。classaccount:def__init__(self,id,balance):self.id=idself.balance=balancedefdeposit(self,amount):self.balance+=amountdefwithdraw(self,amount):self.balance-=amountacc1=account('1234',100)acc1.deposit(500)acc1.withdraw(200)print(acc1.balance)三、问答题1.什么叫类?什么叫对象?它们有何关系?类是具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。类的实力化的结果就是对象,而对象的抽象就是类,类描述了一组有相同特性(属性)和相同行为的对象。2.在Python中如何定义类与对象?创建类,类主要由类名,属性,方法组成,当然创建一个类时,属性和方法可以选择的。创建对象,直接类名(),不用像java中还要new,所以python更加简洁3.类的属性有哪几种?如何访问它们?类的属性按使用范围分为公有属性和私有属性类;可以通过instance.__classname__attribute方式访问4.继承与派生有何关系?如何实现类的继承?继承是从已有的类中派生出新的类,新类具有原类的数据属性和行为,并能扩展新的行为,派生类就是从一个已有的类中衍生出新的类,在新类的基础上添加新的属性和行为5.什么是多态?在Python中如何体现?多态指的是多种状态,相同类型的不同对象完成某个行为时,会得到不同的状态多态,一般是通过继承和方法重写实现,多个子类继承同一个父类这些子类对象重写父类的方法,实现不同的逻辑单元五你知道OpenMV的特点吗?简单易用:使用Python语言进行编程,无需底层开发。高性能的图像处理:支持多种图像算法如图像采集、二值化、滤波、边缘检测、颜色识别、形状识别等。丰富的硬件支持:可以运行在多种硬件平Bluetooth、LCD等。开放性与可扩展性:开源项目,用户可以自由修改和扩展代码,添加自己的算法和传感器。低成本:相对其他嵌入式视觉开发平台成本较低,适合学生和个人开发者使用OpenMVIDE有几种色彩空间,如何查看图片不同色彩空间的阈值?OpenMVIDE中的颜色追踪器工具;OpenMV提供的API来设置阈值和色彩空间;OpenMV提供的自适应阈值算法来自动调整值。3.你能找到OpenMVIDE示例程序的路径吗?4.尝试阅读OpenMV示例程序并运行,观察运行效果。单元六☞创新小尝试:设计“一物一码”追踪溯源系统背景:对于制造业来说,产品的生产已逐步的实现自动化,满足了消费者对产量的需求,但随着产量的不断增加,市场竞争的白热化加剧,如何有效的保证产品的质量,确保每件产品在原料入厂、生产作业过程和成品出厂的过程中能够实现精确的可追溯性,是目前众多企业用户最关心的问题。大部分制造企业都还采用手工作业方式记录产品生产过程的各类批次信息和质量信息,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论