《人工智能技术应用(第三版)》课件全套 何琼 第1-5章 走近人工智能-让机器听你指挥_第1页
《人工智能技术应用(第三版)》课件全套 何琼 第1-5章 走近人工智能-让机器听你指挥_第2页
《人工智能技术应用(第三版)》课件全套 何琼 第1-5章 走近人工智能-让机器听你指挥_第3页
《人工智能技术应用(第三版)》课件全套 何琼 第1-5章 走近人工智能-让机器听你指挥_第4页
《人工智能技术应用(第三版)》课件全套 何琼 第1-5章 走近人工智能-让机器听你指挥_第5页
已阅读5页,还剩553页未读, 继续免费阅读

下载本文档

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

文档简介

第1章走近人工智能《人工智能技术应用》(第3版)目录01|场景导入02|知识小百科03|如何开始你的学习04|分享评价场景导入百度萝卜快跑自动驾驶车辆已在武汉大规模投入运营,覆盖全市主要交通区域,截至2025年3月累计提供超1000万次出行服务。萝卜快跑依靠的是百度ApolloADFM大模型——全球首个支持L4级别自动驾驶的大模型,从原始数据到油门转向输出,形成端到端自动驾驶系统。这个神器的本质就是人工智能技术!1.1人工智能的概念1950年:图灵发表《计算机器与智能》,提出图灵测试1956年:达特茅斯会议,麦卡锡首次提出人工智能概念定义:AI是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的新技术科学。研究领域:机器人、语言识别、图像识别、NLP、专家系统等1.2人工智能发展历程①混沌初生(1940s-50s):图灵测试、可编程机器人②开天辟地(1950s-70s):DENDRAL专家系统、ELIZA聊天机器人③峰回路转(1970s-80s):知识工程概念提出④柳暗花明(1980-90):BP算法、神经网络商业成功⑤山重水复(1990-2020):深蓝胜卡斯帕罗夫、深度学习突破⑥百花齐放(2020至今):GPT-3、DeepSeek、具身智能爆发百花齐放:2020年至今2020年:GPT-3发布,1750亿参数2023年:大模型百团大战(文心一言、通义千问、星火、ChatGLM)2024年:DeepSeekV3发布、Figure01人形机器人、宇树H1登春晚2025年:DeepSeekR1发布,低成本实现与OpenAIo1相当推理能力阿里巴巴AI训练芯片100%国产化中国团队Manus在GAIA基准测试中超越OpenAI中国AI从追随者向引领者转型发展历程图示1950年图灵测试→1956年AI概念提出→1966年ELIZA→1997年深蓝→2006年深度学习突破→2016年AlphaGo→2020年GPT-3→2023年大模型爆发→2024年具身智能→2025年DeepSeek崛起技术进步推动人工智能从幻想成为现实1.3人工智能的分类弱人工智能:擅长某一特定任务,如房价预测、视频推荐近年来所有AI成就都属于弱人工智能领域通用人工智能(AGI):能完成所有人类智能行为最终目标是研制出跟人类一样智能的机器目前还需许多技术突破1.4人工智能在产业的应用智能制造:AI质检员、5G+AI视觉检测智慧医疗:AI辅助诊断、医学影像分析智能金融:风险控制、智能投顾自动驾驶:萝卜快跑L4级已商业化运营教育领域:智能辅导、个性化学习AI正深刻改变全球产业格局AI产业应用实例在长虹华丰科技生产车间里,AI质检员正在利用2000万像素高清摄像头的5G+AI视觉检测设备对高精度零件进行实时质量检测。自2010年深度学习突破以来,AI技术逐步从实验室走向产业化,在计算机视觉、NLP、机器人控制等领域取得显著进展。1.5人工智能四要素数据:AI的燃料,海量数据驱动模型学习算法:AI的核心,决定如何从数据中学习算力:AI的引擎,GPU、TPU等硬件加速计算场景:AI的价值,技术与实际需求的结合四要素缺一不可,共同构成AI应用的基础1.6如何开始你的AI学习之旅第一阶段:Python编程基础→变量、数据类型、判断、循环项目:超市记事本、猜数字游戏第二阶段:数据结构→列表、元组、字典、函数项目:图书管理系统、搬运工第三阶段:计算机视觉入门→项目:人脸识别系统、包裹分拣开源框架:TensorFlow、PyTorch、PaddlePaddle开放平台:百度AI、阿里云AI、华为云ModelArts分享时刻1.你身边有哪些人工智能的应用?2.你认为人工智能会给未来带来什么变化?3.你最想用AI解决什么问题?4.学习AI需要做好哪些准备?评价环节评价方式评价环节评价内容评价结果自我评价与相互评价场景导入AI的认识☆☆☆☆☆知识小百科AI发展历程的理解☆☆☆☆☆AI分类与应用场景☆☆☆☆☆AI四要素的理解☆☆☆☆☆AI实验室AI学习路径规划☆☆☆☆☆分享评价对AI未来的思考☆☆☆☆☆致

谢第2章初识Python2.1超市记事本《人工智能技术应用》(第3版)目录01|场景导入02|知识小百科03|AI实验室04|分享评价场景导入小明和家人来到超市购买日常生活用品,完成扫码支付后,小明看了看消费清单,一个想法突然映入他的脑海里:“能不能利用Python自己设计一个超市记事本的程序呢?能记录家人每次的购买商品记录,包括商品名称、商品单价、商品数量及消费总金额,这样就可以合理的安排家庭支出了”。学以致用,下面我们随着小明一起走进Python的世界,开始编程之旅吧!活动目标:学习Python编程中的变量使用、常用数据类型以及标识符命名规则学习赋值语句掌握从键盘读取数据,打印数据的方法知识小百科—Python简介Python是一种跨平台通用的编程语言,用它编写的程序能够运行在Linux、Windows、MacOS等平台上。在Python官方网站上,可以下载各个版本的Python软件。Python语言分为Python2和Python3两个主要版本分支,彼此之间并不完全兼容,而且差异比较大。由于Python官方核心开发团队已于2020年1月1日正式停止对Python2的支持,因此,选择学习Python3较为合适。本书所有任务均基于Python3.11.3版本开发。下载Python软件Step1:打开Python官方网站,并单击下载“Downloads”菜单。Step2:选择Python3.11.3版本。Step3:选择并下载64位的Python可执行安装包。安装Python软件Step1:下载完成后,启动安装包,在默认和自定义安装选择对话框中,勾选添加环境变量选项,选择自定义安装。安装Python软件(续)Step2:在可选功能对话框中,默认勾选全部选项,单击“Next”按钮。Step3:在高级选项对话框中,勾选添加环境变量选项并更改安装路径,单击“Install”按钮。Step4:安装成功后,单击“Close”按钮即可。检查Python环境Step5:检查Python环境是否搭建成功。打开命令提示符窗口,输入“python”并按回车键确认,若弹出相应界面,证明Python环境搭建成功。更换pip下载源pip是Python包管理工具,该工具提供了对Python包的查找、下载、安装和卸载等功能。用户可以通过命令“piplist”来查看所有pip安装包版本。Python环境搭建成功后,pip下载源默认是国外的网站,当安装第三方Python库时,速度较慢,因此,需要更换为国内的网站。常见国内镜像源:·清华大学:/simple/·中国科学技术大学:/simple/·阿里云:/pypi/simple/·豆瓣:/simple/更换pip下载源(操作步骤)以更换为清华大学镜像源为例:Step1:在“C:\Users\用户名\”的根目录下新建一个文件夹,名称为“pip”。Step2:在pip文件夹内新建一个文本文档,名称为“pip”,内容改为:[global]index-url=/simple/Step3:设置显示文件后缀名,把pip文本文档名称和后缀名改为pip.ini即可。VSCode简介虽然自带官方PythonIDE编程环境,但官方的编程环境对用户操作不友好,因此,本书推荐VSCode(VisualStudioCode)。VSCode是Microsoft推出的集成开发环境(IDE),也是目前使用最广泛的代码编辑器之一。支持全平台系统,轻量、开源且功能强大,可扩展性非常高,并拥有丰富的插件生态系统,支持多种语言和文件格式的编写。VSCode支持C++、PHP、Python、Java等多种语言开发。对于初学者来说,用它来写Python是再合适不过了。下载VSCodeStep1:打开官方网站,选择Windows版本,下载安装包。安装VSCodeStep1:下载完成后,启动安装包,并进行安装,建议更改默认安装路径。Step2:勾选添加环境变量选项后,单击“下一步”按钮。Step3:安装成功后,单击“完成”按钮即可。VSCode环境配置—安装中文语言包Step1:按“Ctrl+Shift+P”组合键。Step2:输入“ConfigureDisplayLanguage”,并按回车键进入语言设置界面。Step3:选择“Installadditionallanguages”选项安装其他语言。Step4:选择安装中文(简体)语言包。VSCode环境配置—安装Python插件在扩展搜索栏中,输入“python”搜索插件,安装Python插件(Python和PythonforVSCode)。VSCode环境配置—配置Python解释器Step1:选择“文件→首选项→设置”选项,选择“工作台→外观”选项,单击“在settings.json中编辑”进入配置文件。Step2:配置Python解释器的安装路径。Step3:配置鼠标滚轮改变字体大小和禁用语法检测功能(可选)。VSCode环境配置—测试Step4:最后,测试VSCode环境是否搭建成功。新建Python文件,并在控制台上测试输出“Helloworld!”,证明环境搭建完成。Python与计算机沟通Python是一种计算机程序设计语言,是与计算机沟通的桥梁。通过编写程序代码,让Python与计算机进行沟通。现在,启动VSCode软件,输入Python代码:print(520)运行结果:520代码背后发生了什么:(1)通过代码向计算机发出指令:输出“520”;(2)Python把代码编译成计算机能“听懂”的机器语言;(3)计算机执行相应的动作,输出结果。这就是通过Python这个工具,成功与计算机实现沟通的方式。Python与计算机沟通(续)现在请大家继续在VSCode软件上,输入如下Python代码,可以把你的名字替换到单引号内:print('你的名字')运行结果:你的名字特别说明:Python代码区分大小写。在编写Python语句的时候一定只能使用英文输入法!变量和赋值想要把自己的名字存入计算机,让计算机帮忙保存信息,就需要使用变量和赋值的方法。变量是用于存储数据的计算机内部空间。变量含有变量名和变量值。变量名是一种标识符,标识符就像是一个人的名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称,可以理解为这个空间的门牌号码。Python语言中,标识符必须符合如下命名规则:(1)只能是一个词;(2)只能由字母、数字和下划线组成;(3)不能以数字开头;(4)区分大小写;(5)不能使用Python函数名或关键字。从培养使用习惯的角度,尽量用能够描述包含数据内容的词语来命名。变量和赋值(示例)name="孙悟空"Python中,通过赋值操作来给变量这个空间填入数据。等号(=)就是用来给变量赋值的。等号的左边是变量名,右边是变量中的值,即变量值,也就是想要存入变量空间的信息内容。上面代码就是变量的赋值,把“孙悟空”这三个字赋值给了name这个变量。变量和赋值(修改变量值)name="孙悟空"name="哪吒"print(name)运行结果:哪吒由运行结果可见,终端上出现的结果是“哪吒”,而不是“孙悟空”。一个变量创建后,变量名就固定下来,而变量值却是可变化的。特别说明:Python中的变量在使用前都必须赋值,变量赋值以后该变量才会被创建。而且变量不用定义类型,系统会自动识别。关键字关键字也称保留字,Python的关键字不能用作标识符。Python的关键字如下:and、or、not、if、elif、else、while、for、break、continue、pass、return、False、True、in、is、try、except、None、from、import、def、class、with、del、assert、as、finally、global、raise、lambda、nonlocal、yield特别说明:编程者如果自己定义和这些关键字名称相同的标识符,会导致无法预知的错误。andornotifelifelsewhileforbreakcontinuepassreturnFalseTrueinistryexceptNonefromimportdefclasswithdelassertasfinallyglobalraiselambdanonlocalyield

基本数据类型—字符串在计算机世界里,所有能输入计算机并被计算机程序处理的、具有一定意义的文字、数字、字母符号和图片、视频等统称为数据。Python中最常用的数据类型有字符串(str)、整数(int)和浮点数(float)。字符串英文为string,简写为str,就是由一个个字符串起来的组合,字符可以是数字、字母、文字,甚至是一个符号等。字符串的识别方式非常简单:被单/双/三引号括起来的内容,就表示是字符串类型。其中,三引号允许一个字符串跨多行,字符串中可以包含换行符。基本数据类型—字符串示例name="人工智能"print("Let'splayagame!")在这段代码里,人工智能、"Let'splayagame!"都属于字符串类型。基本数据类型—转义字符转义字符表示含义\(在一行的末尾时)续行符\\反斜杠符号\'单引号\"双引号\a响铃\b退格(Backspace)\000空\n换行\v纵向制表符\t横向制表符\r回车\f换页\oyy八进制数yy代表的字符,例如:\012代表换行\xyy十六进制数yy代表的字符,例如:\x0a代表换行基本数据类型—整数Python可以处理任意大小的整数,其中包括负整数。在程序中用十进制表示整数方法和数学上的写法一模一样print(20200130)运行结果:20200130如:1、100、-8080、0等。下列语句都是合法的语句:a=15b=1090065489c=23+45098基本数据类型—浮点数浮点数就是带小数点的数字,由整数部分和小数部分组成。例如:8.0、3.14159等。特别说明:在Python中,浮点数运算可能会产生精度丢失的问题,需要时可以使用decimal模块进行高精度计算。算术运算符Python的运算符有很多种,Python的算术运算符是完成基本算术运算的符号。算术运算符表:+:加,两个数相加-:减,两个数相减*:乘,两个数相乘/:除,两个数相除%:取余,两数相除的余数//:整除,两数相除取整数部分**:幂运算,返回x的y次方特别说明:Python中除法运算的结果永远是浮点数。运算符优先级表:运算符优先级(从高到低)1级:**(指数)2级:+、-、~(正负号、按位取反)3级:*、/、%、//(乘、除、取余、整除)4级:+、-(加、减)5级:<<、>>(位移动)6级:&(按位与)7级:^(按位异或)8级:|(按位或)9级:==、!=、>、<、>=、<=、is、isnot、in、notin(比较、成员)10级:not(逻辑非)11级:and(逻辑与)12级:or(逻辑或)13级:=、+=、-=、*=、/=、%=、**=(赋值)运算符示例—水仙花数magic="是个水仙花数"expression=1×1×1+5×5×5+3×3×3number=153print(str(number)+expression+magic)print(153+expression+magic)运行结果:153=1×1×1+5×5×5+3×3×3是个水仙花数数据类型转换Python提供了丰富的内置函数用于满足编程需求:int():将字符串或浮点数转换为整数float():将字符串或整数转换为浮点数str():将任意类型转换为字符串特别说明:str()函数在应用过程中并没有改变number变量的数据类型,只是在使用的时候给变量加上了一层外壳。float()函数括号里面的数据如果是字符串类型,那这个数据一定得是数字形式。数据类型转换(示例)示例:int(1.8)运行结果:1但浮点数是可以被int()函数转换的。运行结果:...特别说明:float()函数括号里面的数据如果是字符串类型,那这个数据一定得是数字形式。input()函数input()函数是输入函数。input()括号中的参数是等待输入时的提示信息。程序执行到input()函数时将等待用户从键盘输入数据。如果括号中带有参数,这时将显示提示信息。如下段代码:执行到“name=input('请输入你的名字:')”时,系统提示“请输入你的名字:”,等待用户输入,用户输入后按回车键后继续运行。name=input('请输入你的名字:')print(name)input()函数(续)特别说明:无论输入的是字符串还是数字,input()函数统一返回字符串类型。使用input()函数输入的字符串需要用引号括起来。AI实验室—任务发布超市记事本任务:设计一个超市购物记录程序,记录商品名称、单价、数量,计算总金额。软件环境:Python3.x,VSCode开发环境。AI实验室—任务环境本任务软件环境需要配置好Python3.x语言环境,并安装有相应的编程集成开发环境。系统流程图:开始→输入商品信息→计算总金额→输出清单→结束。系统流程图AI实验室—任务实施超市记事本核心代码:name=input('请输入商品名称:')price=float(input('请输入商品单价:'))count=int(input('请输入购买数量:'))total=price*countprint(f'商品名称:{name}')print(f'单价:{price},数量:{count}')print(f'总金额:{total}')运行结果:...请输入商品的名称:牛奶请输入商品的单价:3.5请输入商品的数量:2购买商品:牛奶,单价:3.5元,数量:2件,总价:7.0元

程序解读特别说明:任务程序虽然只有几行代码,但涉及到许多Python编程中的基本元素。程序第一行是一个赋值语句,第二行使用input()函数获取用户输入。float()和int()用于数据类型转换。print()函数用于输出结果。f-string格式化输出让字符串和变量结合更自然。分享评价1.请判断下列哪些是有效的标识符。Miles,miles,a+b,if,apps,$4,Test,x,a,4a,#44,a442.请用print()函数输出下列两行文字,显示在屏幕上。欢迎来到人工智能的世界学习进步需要每天的积累3.请运用print()函数与str()函数计算下列两个变量值的和,并显示在屏幕上。a=16B=72THANKYOUFORLISTENING评价方式评价环节评价内容评价结果自我评价与相互评价场景导入超市购物☆☆☆☆☆知识小百科Python3.X及VSCode软件☆☆☆☆☆变量与标识符☆☆☆☆☆常用的数据☆☆☆☆☆Python的输入与输出☆☆☆☆☆AI实验室任务环境的搭建☆☆☆☆☆绘制超市记录本的流程图☆☆☆☆☆超市记录本程序实现☆☆☆☆☆分享评价Python标识符的识别☆☆☆☆☆变量、输入和输出函数的应用☆☆☆☆☆评价环节致

谢第2章初识Python2.2猜数字游戏《人工智能技术应用》(第3版)目录01|场景导入02|知识小百科03|AI实验室04|分享评价猜数字游戏猜数字游戏是小时候玩过的一个小游戏——卡片上写有数字,给定几次机会猜具体的数字,每次提示猜大了还是猜小了,在给定机会内猜对就算获胜。现在来和计算机玩这个游戏——让计算机随机准备一个数字,当输入一个数字,计算机首先判断与随机数是否相等,再进一步提醒是猜大了还是猜小了。通过反复输入与比较,就能一步步地找到最终的结果。猜数字游戏流程图根据规则画出程序流程图——流程图中出现了分支,这属于Python语言的选择结构。Python提供三种基本结构:①顺序结构:按先后顺序从上到下依次执行②选择结构:根据条件选择执行分支③循环结构:反复执行一段代码布尔型数据布尔型是Python中用来表示逻辑值的一种数据类型。该数据类型只有两个值:True(真)和False(假)。例如:3>1是真(True),5>10是假(False)⚠True和False是关键字,首字母必须大写。Python区分大小写,true和True不一样。比较运算符比较运算符用于判断两个值之间的大小关系,结果为布尔值。==等于5==5True>大于5>3True<小于5<3False>=大于等于5>=5True<=小于等于5<=3False!=不等于5!=3True⚠注意:==是比较运算符,=(单等号)是赋值操作。逻辑运算符Python用三个单词做逻辑运算:and(逻辑与)—两个条件都成立才为Trueor(逻辑或)—至少一个条件成立即为Truenot(逻辑非)—取反示例:a=True,b=Falseaandb→Falseaorb→Truenota→False优先级:not>and>or运算符描述and与,前后两个操作数必须都为真(True),才返回True;否则返回Falseor或,前后两个操作数中,只要有一个是真(True),就返回True;否则返回Falsenot非,只需一个操作数,如果操作数为真(True),则返回True;否则返回False选择结构概述根据条件选择执行哪个分支。①单分支(if):一个条件,满足则执行②双分支(if-else):两个分支,满足/不满足各不同③多分支(if-elif-else):多个条件依次判断所有分支语句都用if语句来表示。单分支选择结构语法格式:if判断条件:代码块(必须缩进)判断逻辑:•条件True→执行缩进的代码块•条件False→跳过代码块注意:if后需跟英文冒号:,代码块必须缩进示例讲解—宝石故事传说:有6颗宝石是宇宙中最强大的东西,如果一个人同时拥有6颗,他就可以拥有拯救宇宙的力量。用if语句来翻译:stonenumber=6ifstonenumber==6:print('你拥有拯救宇宙的力量!')运行结果:你拥有拯救宇宙的力量!注意:冒号后下一行缩进了字符——这是Python的代码块标识。Python缩进规则Python使用缩进来表示代码块,不需要大括号{}。①if/elif/else后缩进的代码称为代码块(条件执行体)②同一代码块的语句必须缩进相同字符数③Python3不允许同时使用空格和制表符的缩进缩进不一致→报错!冒号和缩进是一种语法,帮助Python区分代码层次。双分支选择结构语法格式:if判断条件:代码块1(条件满足)else:代码块2(条件不满足)注意:else后也需跟英文冒号:if和else的代码块缩进必须保持一致示例讲解—小明夜宵小明纠结要不要吃夜宵,上秤称一下:超过100kg就不吃;否则就放心吃。称出101kg……weight=101ifweight>100:print('太重了,不吃了')else:print('开吃!')运行结果:太重了,不吃了缩进不一致→报错!多分支—嵌套当有多个判断条件时,可以嵌套多个if和if-else。示例:成绩评定成绩≥60→及格(其中≥90优秀,否则良好)成绩<60→不及格(其中<30需努力,否则继续加油)⚠嵌套不宜超过3层,否则代码可读性变差。嵌套条件代码示例score=85ifscore>=60:print('你已经及格')ifscore>=90:print('你很优秀')else:print('成绩良好')else:print('不及格')ifscore<30:print('需要努力')else:print('继续加油')print('程序结束')#运行结果:你已经及格成绩良好程序结束多分支—if-elif-else语法:if条件1:elif条件2:elif条件3:else:先判断if→满足则执行;不满足则看elif;再不满足则else。特点:elif数量可任意添加,elif后可以不接else。elif使用示例score=int(input('请输入成绩:'))ifscore>=90:print('优秀')elifscore>=80:print('良好')elifscore>=70:print('中等')elifscore>=60:print('及格')else:print('不及格')运行结果(输入85):良好循环结构概述重复执行某些操作。①计数型循环:设计具体循环次数②条件型循环:设置终止条件Python提供:while语句和for语句while语句语法:while循环条件:循环体True→执行循环体,返回再次判断False→退出循环示例:1+2+...+100i=1;s=0whilei<=100:s+=i;i+=1print(s)#5050无限循环条件永远为True时循环无限执行——死循环。格式:whileTrue:循环体示例:importtimewhileTrue:time.sleep(1)print('你好')中断:按Ctrl+C应用:客户端与服务器的通信while-else语句while条件:代码块1(True时执行)else:代码块2(False时执行)True→执行代码块1→返回再次判断False→执行else下代码块2→结束示例:count=0whilecount<=3:count+=1else:print('循环结束')for语句for语句遍历任何序列的项目。语法:for变量in序列:代码块遍历:从第一个元素到最后一个依次访问示例:1到100累加s=0foriinrange(1,101):s+=iprint(s)#5050range()函数语法:range(start,end,step)start:起始值(默认0)/end:结束值(不含)/step:步长(默认1)示例:range(5)→0,1,2,3,4range(2,8)→2,3,4,5,6,7range(2,18,4)→2,6,10,14注意:for-in中的变量由for自动赋值,不要在循环内修改循环控制—breakbreak:强行终止循环。遇到break立即结束。示例:foriinrange(10):ifi==2:breakprint(i)#输出0,1while中的break:a=0whileTrue:ifa==5:breaka+=1循环控制—continuecontinue:忽略当次循环余下语句,继续下一次。循环没有终止,只是跳过一次。示例:foriinrange(5):print(f'开始{i}')ifi==1:continueprint(f'输出{i}')当i=1时跳过了continue后的输出。循环的嵌套把一个循环放入另一循环内部→循环嵌套。外层1次,内层执行完整一轮。外层n次、内层m次→内层体执行n×m次。示例:foriinrange(3):#外层forjinrange(2):#内层print(i,j)任务发布目标:编写完整的猜数字游戏程序要求:1.计算机用random模块生成随机数2.玩家输入一个数字3.比较:相等→猜对结束;不相等→提示4.重新输入,直到猜对涉及:random模块、while循环、if判断参考流程图①importrandom②target=randint(1,100)③whileTrue循环④玩家输入guess⑤判断:相等→break大于→猜大了小于→猜小了⑥返回第④步猜数字游戏完整代码importrandomtarget=random.randint(1,100)print('猜数字游戏开始!')print('数字范围:1~100')whileTrue:guess=int(input('请输入:'))ifguess==target:print('恭喜,猜对了!')breakelifguess>target:print('猜大了')else:print('猜小了')print('游戏结束!')运行结果与程序解读运行示例:50→猜小了75→猜大了62→恭喜,猜对了!解读:①importrandom→导入随机模块②randint(1,100)→生成1~100随机整数③whileTrue→无限循环,break退出④if-elif-else→三路判断⑤break→猜对终止循环分享时刻1.用循环输出九九乘法表(提示:嵌套循环)2.河神的故事——用if-elif-else实现:小伙掉铁斧头,河神问:金斧头还是银斧头?回答金或银→不给;回答铁→三把都给他3.你还能给猜数字游戏增加什么功能?评价环节评价方式评价环节评价内容评价结果自我评价与相互评价场景导入猜数字游戏☆☆☆☆☆知识小百科数据的判断☆☆☆☆☆选择结构☆☆☆☆☆while循环和for循环☆☆☆☆☆嵌套的应用☆☆☆☆☆AI实验室绘制猜数字的流程图☆☆☆☆☆猜数字程序实现☆☆☆☆☆程序解读☆☆☆☆☆分享评价循环的应用☆☆☆☆☆选择结构的应用☆☆☆☆☆致

谢第2章初识Python2.3图书管理系统《人工智能技术应用》(第3版)目录01|场景导入02|知识小百科03|AI实验室04|分享评价猜数字游戏准备写毕业论文的小明来到学校图书馆,打算在自助借书系统借几本专业参考书。看着图书馆熙熙攘攘的同学,小明开始思考:学校图书馆容量大,书籍种类也多,每天同学们借的书籍都不一定相同,作为图书馆管理员,面对众多的书籍和学生借阅信息,该如何管理的呢?小明决定利用自己的专业知识来设计一个图书管理系统。学习目标活动目标:学习列表的基本操作学习字典的基本操作了解元组及元组与列表的相互转换完成图书管理系统的设计(一)列表图书管理信息系统中,我们需要对数据进行批量处理,如众多的图书信息、学生借阅信息等,如何存储和组织这些数据呢?这就用到Python的列表和字典了。列表用[]表示,在列表中可以集中存放多个数据,并且数据类型不必统一。列表中的数据称为列表的元素,每个元素之间用逗号“,”间隔。格式:element1,element2,...,elementn列表中同时包含字符串、整数、列表、浮点数这些数据类型。特别说明:通常情况下,列表中只放入同一类型的数据,这样可以提高程序的可读性。例如:num=[1,2,3,4,5,6,7]

name=['武汉软件工程职业学院','']

program=['C语言','Python','Java']创建一个列表在Python中创建列表时,也可以使用赋值运算符“=”直接将一个列表赋值给变量,其语法格式如下:listname=[element1,element2,element3,...,elementn]其中,listname表示列表的名称,必须符合Python命名规范,也必须避开与Python的内置函数重名。例如,下面定义的列表都是合法的:num=[1,2,3,4,5,6,7]

name=['武汉软件工程职业学院','']

program=['C语言','Python','Java']另外,使用此方式创建列表时,列表中元素可以有多个,也可以一个都没有,例如:emptylist=[]从列表提取单个元素列表中每个元素都分配一个数字,即它的位置或索引,第一个索引是0,第二个索引是1,以此类推。例如,获取name列表中索引值为1的元素:name=['武汉软件工程职业学院','']

print(name[1])

运行结果:特别说明:索引值是从0开始的,而非我们习惯的从1开始;列表名后加带索引值的中括号,就能取到相应位置的元素。从列表提取多个元素如果要同时取好几个元素呢?所以接着学习如何从列表中取出多个元素。在Python中处理列表的部分元素称为切片操作。运行结果:['Baidu','Tencent']即:输出的列表中1≤索引值<3的元素(子列表)有关列表的切片操作其他用法,感兴趣的同学可以参考Python资料学习。4、列表添加/删除元素(1)列表添加元素

在创建好的列表之后,还可以使用append()函数来添加元素。

students=['小明','小红','小刚']

students.append('小美')

print(students)

运行结果:['小明','小红','小刚','小美']append()函数每次只能给列表增加一个元素,放在列表的最后面。列表删除元素如果我们想在以下四个元素中删除小红的名字,试试下面代码:del语句是根据元素的索引来删除的,不返回到删除值。使用del既能删除一个元素,也能一次删除多个元素(原理和切片类似,左取右不取)。当元素删除之后,位于它后面的元素会自动移动填补空出来的位置。元组元组和列表类似,最大的区别在于元组中的元素不能修改。tup=(Baidu,Tencent,Taobao,Google)元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。tuo=(50,)例如:t=(1,)#这是元组,不是整数元组1、转换列表为元组#创建一个0-4的列表a=[0,1,2,3,4]#将列表转换为元组b=tuple(a)print(b)运行结果:(0,1,2,3,4)元组2、元组转换为列表

list()函数可以将元组转换为列表,例如:c=('app',20,-1.2)#将元组转换成列表d=list(c)print(d)此程序的功能是将一个元组('app',20,-1.2)转换为列表。元组3、for-in循环遍历列表、元组

专门用于遍历范围,列表,元组和字典等可迭代对象包含的元素。list=[Python,c++,Java]forxinlist:print(x)运行结果:Pythonc++Java

字典字典是一种无序的、可变的、键值对形式的数据结构。相互对应的关系,即通过一个元素,可以唯一找到另一个元素。如图所示:映射关系示意图创建字典字典中每个元素都包含键和值两部分,在创建字典时,键和值之间使用冒号分隔,相邻元素之间使用逗号分隔,所有元素放在大括号{}中。Python字典类型的语法格式如下:dictname={key1:value1,key2:value2,...,keyn:valuen}其中,dictname表示字典类型名,keyn:valuen表示各个元素的键值对。创建一个字典如下所示:pythonscores={小明:95,小红:90,小刚:90}可知以上字典有3个键值对:小明:95,小红:90,小刚:90,用英文冒号连接。如小明:95,其中,把小明叫键,95叫值。需要注意的是,同一字典中各个元素的键必须唯一。创建字典scores={语文:89,数学:92,英语:93}print(scores)#空的大括号代表空的dictempty_dict={}print(empty_dict)#使用元组作为dict的键dict2={(20,30):good,30:[1,2,3]}print(dict2)运行结果:{语文:89,数学:92,英语:93}{}{(20,30):good,30:[1,2,3]}可以看到,同一字典中,键可以是整数、字符串或者元组,只要符合唯一和不可变的特性就可以;对应的值可以是Python支持的任意数据类型。访问字典

因为字典中元素是无序的,所以不能像列表、元组那样进行访问,字典通过键而不是通过索引来访问对应的元素值,不能采用切片的方式一次性访问多个元素。(1)用键访问字典中的元素例如,如果想访问字典,将小明的成绩从字典里输出,代码如下scores={小明:95,小红:90,小刚:90}print(scores[小明])运行结果:95这便是从字典中提取对应的值的方法。在中括号中应该写键的名称,即:字典名[键],通过键来访问对应的元素。访问字典在使用此方法获取指定键的值时,如果键不存在,则会抛出异常,示例如下:scores={小明:95,小红:90,小刚:90}print(scores[小花])运行结果:print(scores[小花])KeyError:小花用get()函数访问字典的元素Python更推荐使用字典类型提供的get()函数获取指定键的值。get()函数的语法格式如下:dict.get(key[,default])其中,dict指的是所创建字典的名称;key表示指定的键;default用于指定要查询的键不存在时返回的默认值,如果不手动指定,会返回None。scores={小明:95,小红:90,小刚:90}print(scores.get(小明))运行结果:95用get()函数访问字典的元素为了防止在获取指定键的值时,因不存在该键而导致抛出异常,在使用get()函数时,可以为其设置默认值,设置后,即便指定的键不存在,也不会报错。示例代码如下:scores={小明:95,小红:90,小刚:90}print(scores.get(小美,字典中无此键))运行结果:字典中无此键添加/删除字典元素向字典添加元素可通过语句“字典名[键]=值”来操作。删除字典元素用del语句“del字典名[键]”,示例代码如下:scores={小明:95,小红:90,小刚:95}delscores[小刚]scores[小刚]=92scores[小美]=85print(scores)运行结果:{小明:95,小红:90,小刚:92,小美:85}从运行结果可以看到:删除了小刚之前的95,修改为92,添加了元素小美的85。任务发布与任务环境(一)任务发布用Python设计图书管理系统:1.设计登录界面2.完成管理员注册3.登录系统,更新系统

(二)任务环境

本任务软件环境需要配置好python3.x语言环境,并安装有相应的编程集成开发环境,本书使用VScode集成开发环境。系统流程图1.绘制程序流程图系统流程图图书管理员程序实现管理员注册与登录管理员注册与登录管理员登录与菜单管理员登录与菜单学生信息管理Python代码如下图书管理代码分享评价1、简述列表和字典的区别。2、尝试运用学习的内容,输入本小组同学的信息。评价环节评价方式评价环节评价内容评价结果自我评价与相互评价场景导入自动图书系统借书☆☆☆☆☆知识小百科字典☆☆☆☆☆列表☆☆☆☆☆元组☆☆☆☆☆AI实验室绘制图书管理系统流程图☆☆☆☆☆登录图书管理系统☆☆☆☆☆学生信息管理☆☆☆☆☆分享评价列表与字典区别☆☆☆☆☆列表、元组及字典的应用☆☆☆☆☆致

谢第2章

初识Python——04搬运工1场景导入2知识小百科3AI实验室4分享评价1场景导入2020年1月,广东省某医院两名特殊的机器人员工“平平”和“安安”正式上岗,用以迅速准确地完成对物资配送,降低病毒交叉感染的风险。机器人(Robot)是自动执行工作的机器装置,随着人工智能技术、工业自动化、计算机网络等的发展,机器人已被广泛应用于各行各业。在咖啡店,机器人可以根据程序执行自动研磨咖啡的操作;在餐饮店,机器人可以执行上菜、收餐盘的工作;在工厂,机器人可实现物品的搬运、码垛功能。想象一下,如果你拥有一台机器人,应该如何编写程序来让机器人实现物品的搬运、堆叠工作呢?如图所示为机器人自动码垛操作。1场景导入机器人码垛实验2知识小百科活动目标:学习系统内置函数学习自定义函数了解类的基础知识了解机械臂的原理及使用实现机械臂的码垛操作程序中有时会反复使用功能相似的代码,若重复编写,则程序显得冗长、不精练。可以将此功能编写成一个通用的独立代码段,即函数,其可被反复使用。通俗来讲,函数就是指为一段实现特定功能的代码“取”了一个名字,以后即可通过该名字来执行(调用)该函数。函数的使用可以大大提高代码的重复利用率,简化程序,使程序具有更高的可读性。Python为我们提供了很多非常便捷实用的系统函数,它们通常被称为“内置函数”,例如在前面章节中(一)什么是函数家已经遇到过的print()函数、input()函数和随机函数等。用户也可以自己创建函数,即用户自定义函数。特别说明:所有函数在被调用和执行的时候,都有一对小括号(),小括号中的内容就是需要用户传入的参数,即便没有任何参数传入,小括号也是不能省略的!(一)什么是函数1、print()函数print()函数的作用就是将小括号中传入的参数(也可以理解成数据)打印在控制台输出并显示出来,大家在前面的章节中已经学过了,例如print("HelloPython!")的执行结果就是在控制台上显示HelloPython!当然,除了可以传入字符串作为参数,还可以传入数字、变量、列表、元组、字典等等,下面介绍print()内置打印函数两个重要的内容:(二)内置函数(1)参数格式化这一点类似于C语言中的printf()函数,可以简单地理解成“先挖一个坑,再在后面填一个坑”,例如下面这个例子:name=“小明”age=19hobby="踢足球"print("我是%s,我今年%d岁了,我喜欢%s"%(name,age,hobby))运行结果为:我是小明,我今年19岁了,我喜欢踢足球(二)内置函数print()函数中小括号中的内容被%分成了两部分,前面部分是需要输出的内容,其中%s、%d、%s是“挖好的坑”,它们的具体内容由%后面部分小括号中的三个参数name,age,hobby来进行“填坑”。%s表示格式化字符串,%d表示格式化整数,其他更多格式化参数,读者可以自行深入研究。(二)内置函数(2)end的作用print()小括号中的end参数,功能是“以什么内容”结尾,举个例子:运行结果为:在上述例子中,2个print()分别以end中的内容结尾,并且打印输出的内容不再换行,如果需要换行,那么需要在另外书写转义字符。print("小明",end='19岁')print("小红",end='16岁')小明19岁小红16岁(二)内置函数2、min()函数顾名思义,min的意思是最小值,min()的作用就是获得小括号中多个数据的最小值,例如:运行结果为:运行结果为:value=min(2,2,5,4,1,6)print(value)1(二)内置函数3、id()函数id()内置函数提供了查询数据内存地址的功能,这一功能对于分析代码逻辑与数据信息是非常有帮助的,例如:运行结果为:num1="你好"num2=123print(id(num1))print(id(num2))1814730912080140704242171984(二)内置函数运行结果为从运行结果可以看到,num1和num2指向内存中两个不同的地址。

(二)内置函数4、random()随机函数常用的随机函数包括random()和randint()。random()“函数”的功能是获取一个0~1之间的随机小数,但不能直接使用它,因为它属于系统中一个叫做random的模块中,因此它是random模块中的random函数,需要先导入random模块(importrandom),再使用random函数。调用模块中的函数,需要使用“.”语法来进行操作,关于模块的使用及函数与方法的区别,参考本节后续内容,这里仅举一个例子:(二)内置函数(二)内置函数importrandomnum1=random.random()num2=random.randint(0,10)print(num1)print(num2)运行结果为:0.200017616195571578上面例子中randint(0,10)的作用是获得0~10之间的一个随机整数。以上列举了4个较为常用的python内置函数用法,其他的内置函数还有很多,希望同学们参考python的API文档,验证其他的内置函数用法。

(二)内置函数自定义函数和内置函数都属于函数,因此它们在本质上是一样的,区别在于:内置函数的运算逻辑已经由python开发者们写好,直接使用就行了,而自定义函数就需要用户自己来写函数的运算逻辑。如完成机器人搬运物品这个功能,就要使用“搬运”的相应函数或方法,可是内置函数中有没有提供这样的函数或方法,那用户既可以自己定义一个相关功能的函数。1、自定义函数的组成、格式与调用程序中使用一个自定义函数,就像现实生活中雇佣一个人一样。首先函数必须要有一个名字(即函数名);

(三)自定义函数其次告诉这个人工作的相关信息,即这个函数还要有参与运算的数据(即形式参数),当然这个参数可以是空参数(即没有参数);第三,这个人如果已经完成任务了,需不需要回馈结果呢?如果需要,函数还要有执行完毕的结果(即返回值);如果不需要运算结果,也可以让函数不返回运算结果。综上所述,一个基本的自定义函数组成包括函数名、形式参数和返回值,其中形式参数可以为空,也可以没有返回值。其语法格式如下:(三)自定义函数(三)自定义函数def函数名(形参列表):函数体return返回值特别说明:(1)函数的定义必须是def开头。(2)函数名的命名规则参考变量名的命名规则,为了提高代码的可阅读性,建议使用驼峰命名法或混合命名法(具体内容自行查阅相关文档)。(3)小括号不能省略!形参列表可以为空或者多个,如有多个形参,用逗号隔开(例如:arg1,arg2,arg3),一旦定义了形参列表,在使用函数时必须要传入参数。(4)小括号后的冒号不可以省略。(5)函数体与return前面必须有缩进。(6)如果需要运算返回值,return语句必须写,否则return语句可以不写。(7)函数体内的多条逻辑仍然按照从上往下的顺序进行运算。(三)自定义函数(8)必须遵循先定义、后调用的原则!即定义函数必须写在调用函数之前,否则报错。说明事项看上去好像有点复杂,其实只要多练习几次就熟练了。练习一下计算两个数的和与差,代码如下:(三)自定义函数#定义两个数相加的函数,函数名为add,形参为num1,num2,返回num1+num2defadd(num1,num2):returnnum1+num2(三)自定义函数#定义两个数相减的函数,函数名为sub,形参为num1,num2,返回num1-num2defsub(num1,num2):returnnum1-num2#打印输出3+7与3-7的结果,3和7为实参print(add(3,7))print(sub(3,7))运行结果为:10-4其实,python中函数的使用就是这么简单。调用自定义函数只需要按照“函数名”+“(实参1,实参2,实参3......)”的格式使用就可以啦!(三)自定义函数2、形参中的*args与**kwargs*args可以将传入的多个实参转换为元组,结合元组的相关操作,就可以方便的对可变长度的参数进行操作了,例如,获得所有实参的和,代码如下:(三)自定义函数#定义所有实参求和的函数,函数名为add,args为所有实参的元组形式defadd(*args):#遍历args,求和并返回求和结果sum=0foriinrange(len(args)):sum+=args[i]returnsum(三)自定义函数#打印2,2,3,4,4的求和结果print(add(2,2,3,4,4))运行结果为:15**kwargs可以将传入的关键字参数转换为字典,结合字典的相关操作,就可以方便的对可变长度的关键字参数进行操作了,例如,打印转换后的字典数据:deffunc(**kwargs):print(kwargs)func(a=1,b=2,c=3)(三)自定义函数运行结果为:{'a':1,'b':2,'c':3}上例中可以看出,传入的关键字参数a=1,b=2,c=3被转换成字典被打印出来。因此,合理运用*args与**kwargs接收可变长度的实参数据进行运算,对于自定义函数来说是非常方便实用的。3、基本数据类型与复杂数据类型基本数据类型在前面学习过了,主要包括整型、浮点型、布尔型等;复杂数据类型包括字符串、列表、元组、字典等(即基本数据类型之外的);基本数据类型与复杂数据类型在赋值的过程中,有一些区别和值得注意的地方:(1)基本数据类型的赋值属于值赋值,可以理解成数据直接赋值给变量;(2)复杂数据类型的赋值属于引用赋值,可以理解成将数据存放的地址赋值给变量;由于以上原因,使得基本数据类型与复杂数据类:(三)自定义函数型在赋值的过程中需要保持头脑清醒,否则容易造成数据的读写错误,但是程序不会提示任何错误,以下通过两个案例进行说明,案例1代码如下:(三)自定义函数a=0 #将0赋值给ab=a #将a赋值给b,此时b=0,a=0b=999 #将999赋值给b,此时b=999,a=0print(a)运行结果为:0说明:案例1中a与b的赋值均为基本数据类型,因此属于值赋值,即直接将变量赋值为整数,当b赋值为999时,并没有修改a,因此a的值仍为0;但是如果将a的赋值修改为列表,结果便有所不同了。如下所示为案例2代码:(三)自定义函数a=[0,1,2,3]#将列表[0,1,2,3]赋值给a,但这是一个引用赋值b=a #将a赋值给b,此时a与b同时指向[0,1,2,3]的内存地址b[0]=999 #将999赋值给b[0],此时b=[999,1,2,3]print(a) #打印a的数据运行结果为:[999,1,2,3]说明:案例2中a虽然看起来从头到尾都没有被重新赋值,但因为a的赋值是引用赋值,即该值为列表[0,1,2,3]的引用地址,b=a语句使得b的值也为列表[0,1,2,3]的引用地址,随后通过b[0]=999语句将列表[0,1,2,3]中的0修改为999,因此a通过其引用赋值访问该列表时,获得的列表数据即为修改后的[999,1,2,3],而并非[0,1,2,3]。如果有些我们需要用到的控制命令(自定义函数)封装在一个叫做“类”的东西里面了怎么办呢?接下来咱们一起走进“类”的世界吧。(三)自定义函数类的使用在面向对象的编程过程中,是很重要的,而且比较抽象和复杂,这里重点认识一下什么叫做类及其简单应用。当然,在学习完本节知识之后,同学可以继续深入了解类的相关知识。(四)类的基础知识1、什么是类和对象无论是python还是其他的面向对象编程语言,类和对象的概念基本上是一样的。为了更好地理解类,我们先来了解一下什么是对象,简单地说,万物皆对象。一台机器人是一个对象、马路边停着的一辆汽车是一个对象、隔壁老李是一个对象、地球是一个对象......,任何一个对象都会有其相应的属性,例如:隔壁老李这个对象,他有哪些属性呢?属性1:姓名,属性2:年龄,属性3:性别,属性4:电话号码,属性5:住址......(四)类的基础知识如果你的程序中仅涉及到老李这一个对象,那么你只需要将老李的这些属性定义成变量进行使用就可以了,但是如果还涉及到老张、老陈、老王、老周等等很多人呢?而且有些人重名了怎么办呢?如果还是用变量的方式去完成,这将是一个很复杂、很容易出错的变量表。因此,我们可以将老李、老张、老陈等对象涉及到的属性全部抽象出来,建立一个person的类,person类中包含了姓名(name)、年龄(age)、性别(sex)、电话号码(tel)、住址(addr)等属性,当我们需要使用老李这个对象的时候,只需要从person类生成一个老李对象出来,并给这些属性赋予(四)类的基础知识老李的信息就可以了(这一过程被称为实例化),当程序中不需要用到老李这个对象时,可以销毁该对象释放内存。下面用一个图来表示上述内容(假定住址都是AAA小区):(四)类的基础知识(四)类的基础知识类与对象实例化模型在类中定义的函数,不能再称为函数了,而应称之为“方法”。此时,有两种调用方式:(1)使用类的属性或方法,采用“类名.属性名”或“类名.方法名”的方式调用;(2)使用对象的属性或方法,采用“对象名.属性名”或“对象名.方法名”的方式调用。(四)类的基础知识2、类和对象的基本使用举例说明类与对象的基本使用,不涉及到类的封装、继承和多态等更加复杂的知识。要求定义一个Person的类,包括前述addr、name、age、sex属性,以及类方法PersonSpeak()和实例方法ObjectSpeak(),示例代码如下:(四)类的基础知识(四)类的基础知识#定义Person类classPerson:#address为类属性address='AAA小区'#__init__为对象初始化方法,接收实例化对象时传入的实参def__init__(self,name,age,sex):=nameself.age=ageself.sex=sex#ObjectSpeak()为普通方法,通过"对象名.ObjectSpeak"的方式调用(四)类的基础知识defObjectSpeak(self):print('我是%s,今年%d岁,性别为%s'%(,self.age,self.sex))#PersonSpeak()为类方法,可以访问类属性@classmethoddefPersonSpeak(cls):print('我们都住在%s'%(cls.address))#调用类方法PersonSpeak()Person.PersonSpeak()#实例化老李和老张laoLi=Person("老李",60,"男")(四)类的基础知识laoZhang=Person("老张",65,"女")#打印老李的姓名与老张的年龄print(laoL)print(laoZhang.age)#调用老李的实例方法laoLi.ObjectSpeak()#调用老张的实例方法laoZhang.ObjectSpeak()运行结果为:我们都住在AAA小区老李(四)类的基础知识65我是老李,今年60岁,性别为男我是老张,今年65岁,性别为女特别说明:address这种直接定义在类中的属性称为类属性,通过Person.address的方式调用。__init__为对象初始化方法,接收实例化对象时传入的实参,该方法中的self指向所实例化的那个对象。@classmethod为装饰器,表明紧跟着的方法为类方法,方法中默认的参数为cls(通过cls获取类中的类属性)。类和对象的概念较为抽象,同学们可以尝试着创建一个机器人类或汽车类,来巩固和加深对类与对象的理解。(四)类的基础知识1、坐标系机器人搬运时会往返于取货点和码垛点之间,拿起物品和放下物品。可以简化理解为两个方面:第一从空间中的一个点移动到另一个点,即点对点的移动;第二是移动到目标点后如何进行相应的控制。如何来确定点的位置呢?通常,坐标系是为了确定机器人的位置和姿态而在机器人或空间上定义的位置指标系统。(五)机械臂原理及使用笛卡尔坐标系:又称机器人直角坐标系,将机器人所在空间中的某个点作为空间坐标原点(通常为机器人基座的位置)。本教材相关任务都选用国产小型机械臂来完成。该机械臂提供了非常完整、丰富的控制指令系统,而且与python语言编译环境兼容性非常好,底层逻辑开源程度较高,非常适合作为人工智能研究及创新创业项目的执行终端。(五)机械臂原理及使用2、外观及构成机械臂是一款桌面级智能机械臂,如图所示,主体结构有底座、大臂、小臂及末端工具,其中末端工具有多种类型,如画笔、柔性手爪、吸盘等,为你提供非常棒的创作体验。(五)机械臂原理及使用(五)机械臂原理及使用机械臂外观结构3、运动模式机械臂点到点的运动模式有三种方式,分别是直线运动、相对运动、绝对运动。控制点到点运动在Python中对应的控制指令是:dexarm.move_to(x,

y,

z,feedrate)参数解释如下页表所示。(五)机械臂原理及使用控制点到点运动指令参数说明dexarm使用

Rotrics库的对象,不需要修改move点到点的运动模式(x,y,z)笛卡尔直角系中机械臂的坐标feedrate运动速度(1)

直线运动直线运动以两点之间的最短路径进行移动,根据两点之间线段最短,因此,移动方式为沿着两点之间的直线运动。(2)

相对运动相对运动是相对于当前位置进行移动。(3)

绝对运动绝对运动是移动到空间绝对坐标的位置。(五)机械臂原理及使用4、坐标获取获取机械臂当前坐标的指令为:dexarm.get_current_position()返回值为坐标队列。(五)机械臂原理及使用4、吸盘控制以吸盘作为末端工具,控制机械臂拾取、放置、复位的指令是:

dexarm.air_picker_pick() #吸盘拾取 dexarm.air_picker_place() #吸盘放置 dexarm.air_picker_stop() #吸盘复位(五)机械臂原理及使用3AI实验室(一)任务发布目标1.利用机械臂实现单个方块来回搬运2.利用机械臂搬运3*3矩阵的不同颜色的方块进行码垛要求(1)熟练运用机械臂的点到点运动指令和气泵控制指令;(2)实现机械臂搬运3*3矩阵的不同颜色的方块分别码垛到A、B、C三点位置,如图所示。示意图本任务软件环境需要配置好python3.x语言环境,并安装有相应的编程集成开发环境,本书使用VScode集成开发环境(Windowsx64UserInstaller版本)硬件环境如下表所示:(二)任务环境硬件图示名称数量机械臂1台USB串口通信线1条电源适配器1套搬运物品模型若干1、实现单个方块来回搬运(1)利用机械臂实现单个方块来回搬运,先从A点位置搬运到B点位置,然后再从B点位置搬运到A点,重复三次后回到初始位置。特别说明:本任务控制系统中,主要通过dexarm.move_to(x,y,z,feedrate)函数控制机械臂的移动轨迹,通过dexarm.air_picker_pick()、dexarm.air_picker_place()函数控制吸盘拿起、放下物品。因此,程序中的坐标点位置需要根据实际情况进行设置。(三)任务实施(2)代码分析#机械臂控制类frompydexarmimportDexarm#通信类importsocket#连接机械臂,并初始化dexarm=Dexarm("COM3")#移动到安全位dexarm.go_home()print('Starting...')(三)任务实施#定义来回搬运

温馨提示

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

评论

0/150

提交评论