人工智能及Python应用 课件 第5章 流程控制-机器人货物分拣_第1页
人工智能及Python应用 课件 第5章 流程控制-机器人货物分拣_第2页
人工智能及Python应用 课件 第5章 流程控制-机器人货物分拣_第3页
人工智能及Python应用 课件 第5章 流程控制-机器人货物分拣_第4页
人工智能及Python应用 课件 第5章 流程控制-机器人货物分拣_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

人工智能及Python应用第5章流程控制—机器人货物分拣

1任务导入2职业能力目标3知能达标4素养提升5视野拓展6任务评价目录1任务导入返回主目录

在现代物流中心,货物分拣是一项劳动密集且重复性高的工作。为了提升效率、降低成本,某物流公司决定开发一套智能机器人货物分拣系统。小E作为公司开发部门的核心成员,负责该系统的设计与开发,将结合Python编程打造一个高效、精准的自动化分拣解决方案。让大家一起跟随小E的脚步,探索如何利用Python实现从需求分析、算法设计到系统集成的全流程开发,感受科技赋能物流行业的魅力!2职业能力目标返回主目录职业技能类别职业能力要求人工智能工程师(HCIA-AI)掌握Python条件语句掌握Python循环语句人工智能训练师(四级)理解Python流程控制基础知识掌握Python实现流程控制的方式“Python程序开发”技能竞赛掌握流程控制方法学会使用if、while、for语句处理多层逻辑3知能达标返回主目录什么是流程控制?到目前为止,大家已经接触过了顺序结构。顺序结构是最简单的代码执行方式,即代码按照编写的顺序从上到下依次执行,既不重复执行也不跳过任何代码。然而在现实编程中,单一的顺序结构无法解决所有的问题,因此需要引入流程控制结构来更改程序的执行顺序以满足多样的功能需求。主要知识点选择结构在现实生活中需要进行判断和选择的情况是很多的。例如:在一条高速公路上,遇到这样的岔路口,一个是去往衡阳方向,一个是去往邵阳方向,驾车者到此处必须进行选择判断,根据自己的目的地,从中选择一条道路继续行驶。在日常工作和生活中,类似这样需要选择判断的情况也是司空见惯的。下面介绍用Python语言实现选择功能,控制程序根据不同条件执行不同的“动作”。【知能基础】选择结构-if单分支

在Python语言中,if单分支选择结构是一种基本的控制流语句,用于根据条件的真假来决定是否执行特定的代码块。如果条件为真(判断结果为True)时执行代码块,条件为假(判断结果为False)时则跳过代码块。单分支选择结构if语句由关键字if、条件表达式和冒号组成,if语句和从属于该语句的代码块共同组成选择结构。if条件表达式:

代码块格式【知能基础】选择结构-if单分支【示例】编写代码实现根据年龄判断是否可以申请考取驾照的功能。以下是两次运行结果图。运行结果1运行结果2【知能基础】选择结构-if单分支age=int(input("请输入您的年龄:"))

ifage>=18:

print("您已经是成年人,可以申请考取驾照!")

print("欢迎下次再来,谢谢!")

示例代码【知能基础】选择结构-if单分支【知能基础】选择结构-if单分支【提示】(1)age>=18是条件表达式,当输入的age大于等于18时,条件表达式结果为True,程序就会执行print("您已经是成年人,可以申请考取驾照!")代码块;当输入的age小于18,此时条件表达式为结果为False时,程序直接跳过所有缩进的代码块执行之后的代码。(2)print(“欢迎下次再来,谢谢!”)这句代码是不管判断结果是True还是False,都会被执行的。(3)if选择结构中需要注意缩进的使用。

age=int(input("请输入您的年龄:"))

ifage>=18:

print("您已经是成年人,可以申请考取驾照!")

print("欢迎下次再来,谢谢!")

示例代码1对比示例代码1和2,找出区别并分析运行结果有何不同?age=int(input("请输入您的年龄:"))

ifage>=18:

print("您已经是成年人,可以申请考取驾照!")

print("欢迎下次再来,谢谢!")

【知能基础】选择结构-if单分支示例代码2

单分支选择结构只能在满足条件时才执行操作,而不满足条件的情况直接忽略。但在实际应用中,常常需要在条件成立时执行一个操作,而在条件不成立时执行另一个操作。

例如,在开发一个用户登录系统时,如果用户输入的密码正确,程序会跳转到主页;但如果密码错误,则需要提示用户“密码错误,请重新输入”。这种情况下,可使用Python提供的if-else语句,不仅处理满足条件的情况,也处理不满足条件的情况。【知能基础】选择结构-if双分支双分支选择结构【知能基础】选择结构-if双分支if-else语句类似于单分支if语句,但其中的else语句能够指定条件表达式为假时要执行的操作。12Python提供了可以同时处理满足和不满足条件的if-else语句,语法格式为:格式if条件表达式:

代码块1else:

代码块2【知能基础】选择结构-if双分支【示例】编写代码实现根据年龄判断是能够申请考取驾照还是好好学习的功能。以下是两次运行结果图。运行结果1运行结果2【知能基础】选择结构-if双分支age=int(input("请输入您的年龄:"))

ifage>=18:

print("您已经是成年人,可以申请考取驾照!")

else:

print("您还未成年,请先好好学习,成年后再考虑驾照问题!")示例代码双分支语句:不管是满足条件还是不满足条件,都有代码需要执行。else后面不需要条件表达式。【知能基础】选择结构-if双分支

当选择判断条件超过两个及以上的情形,可使用Python提供的if-elif-else多分支选择结构。【知能基础】选择结构-if多分支多分支选择结构if多分支选择结构语法格式为:格式if条件表达式1:

代码块1elif条件表达式2:

代码块2elif条件表达式3:

代码块3...else:

代码块n【知能基础】选择结构-if多分支【示例】编写代码实现根据输入的不同年龄践行社会主义核心价值观和劳动教育的功能。以下是四次运行结果图。:运行结果1运行结果2运行结果3运行结果4【知能基础】选择结构-if多分支示例代码提示:多分支判断条件是分段数值时,顺序要么从大到小,要么从小到大!【知能基础】选择结构-if多分支#践行社会主义核心价值观和劳动教育age=int(input("请输入您的年龄:"))if0<=age<18:print("未成年人受义务教育法保护\n※《新时代爱国主义教育实施纲要》要求扣好人生第一粒扣子")elif18<=age<30:print("青年奋斗黄金期\n牢记习近平总书记嘱托:青春是用来奋斗的!")elif30<=age<55:print("社会建设中坚力量\n在平凡岗位践行爱岗敬业的社会主义核心价值观")elif55<=age<=120:print("经验传承重要阶段\n《新时代公民道德建设实施纲要》倡导银龄志愿服务")else:print("数据异常!诚信是社会主义核心价值观的重要内容")

我们使用银行卡在ATM机上取款时,需要历经验证银行卡和验证密码两道程序:银行卡验证通过后方可进入密码验证程序,密码验证通过后方可取款。这个场景中虽然涉及多个判断条件,但这多个条件并非选择关系,而是嵌套关系:先判断外层条件,条件满足后才去判断内层条件;两层条件都满足时才执行内层的操作。【知能进阶】选择结构-if嵌套

执行if嵌套时,若外层判断条件(判断条件1)的值为True,执行代码块1,并对内层判断条件(判断条件2)进行判断:若判断条件2的值为True,则执行代码块2,否则跳出内层条件结构,顺序执行外层条件结构中内层条件结构之后的代码;若外层判断条件的值为False,直接跳过条件语句,既不执行代码块1,也不执行内层的条件语句。if嵌套选择结构【知能进阶】选择结构-if嵌套Python中通过if嵌套可以实现程序中条件语句的复杂条件判断逻辑,语法格式为:格式if条件表达式1:#外层条件

代码块1if条件表达式2:#内层条件

代码块2...【知能进阶】选择结构-if嵌套【示例】编写代码实现根据车速和信号灯状态来提示车辆应该行驶的状态。以下是四次运行结果图。运行结果1运行结果3运行结果4运行结果2【知能进阶】选择结构-if嵌套示例代码【知能进阶】选择结构-if嵌套#严格遵守交通规则vehicle_speed=int(input("当前车速(km/h):"))traffic_light=input("信号灯状态(红/黄/绿):")iftraffic_light=="红":ifvehicle_speed>20:print("超速闯红灯,已触发违法记录!")else:print("安全停车等待!")eliftraffic_light=="黄":print("黄灯警示,减速观察!")eliftraffic_light=="绿":print("绿灯通行,注意行人!")else:print("您输入的信号灯状态有误!")【知能进阶】选择结构-if嵌套【提示】(1)嵌套选择中应当注意if与else的配对关系,else总是与它上面最近的if配合使用。(2)在嵌套选择中应格外注意缩进的使用。(3)为了增加程序逻辑严谨性,针对用户异常输入内容要进行判断和处理,例如本示例中用户如果不输入“红”、“黄”、“绿”三者之一时,将通过print("您输入的信号灯状态有误!")进行提示。(4)if-elif-else层级需清晰,避免嵌套过深。

循环结构前面介绍了程序中常用到的顺序结构和选择结构,但是只有这两种结构是不够的,还需要用到循环结构。因为在日常生活中常常会遇到需要重复处理的问题。例如:校园跑完成2.0KM(绕操场跑5圈)每日打卡活动(需要5次相同的绕圈操作)期末考试打印100张试卷

(需要100次相同的打印操作)向计算机输入全班40名同学的姓名

(需要40次相同的输入操作)

要解决这些问题,需要使用到Python循环结构,来处理重复操作。对于循环结构的设计,要掌握以下“四要素”:初始化语句(起点)循环条件判断(终点)循环体(做什么)更新迭代语句(怎么做)绕400米操场跑5圈来分析:初始化语句:第一圈开始(n=1)循环条件判断:循环跑5次结束(n<=5)循环体:输出圈数更新迭代语句:一圈一圈的跑(n=n+1,每次跑1圈)循环的四要素确定后,只要把这四个要素放在循环语句中合适的位置,便可构成一个可执行的循环结构。【知能基础】循环结构-设计要点Python中提供了两种循环结构:while循环和for循环。while循环结构一般用于实现条件循环,由关键字while、循环条件和冒号组成,while语句和从属于该语句的代码块组成循环结构。while条件表达式:

代码块格式【知能基础】循环结构-while循环【示例】编写代码实现“绕操场跑5圈”。运行结果【知能基础】循环结构-while循环#使用while循环实现跑圈n=1#初始化语句whilen<=5:#循环条件判断print("这是第",n,"圈")#循环体n+=1#更新迭代语句示例代码【知能基础】循环结构-while循环【示例】用while循环计算出1+2+3+…+100的值。运行结果【知能基础】循环结构-while循环n=1#初始化语句1

sum=0#初始化语句2

whilen<=100:#循环条件判断

sum+=n#循环体

n+=1#更新迭代语句

print("1+2+3+...+100=",sum)

示例代码【知能基础】循环结构-while循环

除了while语句以外,Python语言还提供了for语句来实现循环结构。for循环基本语法格式为:foriteminiterable:

代码块格式

其中,item指每次迭代中的当前元素。iterable指要迭代的对象,这个可迭代对象既可以是字符串类型,也可以是Python中常见的内置函数range,还可以是其他组合数据类型,下面来看for循环在字符串类型中的使用。【知能基础】循环结构-for循环【示例】for语句在字符串中的使用。运行结果string=“你好Python”

foriinstring:#in是成员运算符

print(i,end=“\t”)Print()示例代码【知能基础】循环结构-for循环代码实现过程演示动画Python变量string:iPrint打印到控制台:Piyitihioin可以把string理解为一个一维“数组”,每个空格中存放着字符型的元素。循环变量i在数组中移动,直到数组循环结束【知能基础】循环结构-for循环

range()函数是一个非常实用的内置函数,它用于生成一个整数序列。这个函数通常用于for循环中,以便按顺序生成一系列数字。range()函数可以接收1-3个参数,具体语法格式为:参数说明:start:计数从start开始。默认是从0开始。例如range(5)等价于range(0,5)。stop:计数到stop结束,但不包括stop。例如:range(0,5)是[0,1,2,3,4],没有5。step:步长,默认为1。例如:range(0,5)等价于range(0,5,1)。

该函数返回的是一个可迭代对象,所以能与for语句结合使用,关于该函数更多的介绍详见函数和模块章节。range(start,stop[,step])格式【知能基础】循环结构-for循环foriinrange(5):

print(i,end="\t")示例2代码结果表示从0开始,到4结束(不包括5)】foriinrange(3,6):

print(i,end="\t")示例2代码结果表示从3开始,到5结束(不包括6)】foriinrange(0,10,2):

print(i,end="\t")示例2代码结果表示从0开始,到9结束(不包括10),每次i往前移动两下】【知能基础】循环结构-for循环【示例】使用for循环语句求出1+2+3+…+100的和。运行结果sum=0

foriinrange(1,101):

sum+=i

print("1+2+3+……+100=",sum)示例代码【知能基础】循环结构-for循环

不管是while循环还是for循环,循环之间可以相互嵌套,进而实现更为复杂的逻辑关系。循环嵌套按不同的循环语句可以划分为while嵌套循环和for嵌套循环。下面用九九乘法表来进行讲解。【知能进阶】循环结构-嵌套循环【示例】使用while嵌套循环实现九九乘法表。运行结果【知能进阶】循环结构-嵌套循环i=1

whilei<=9:

j=1

whilej<=i:

print(j,"*",i,"=",j*i,end='')

j+=1

print()

i+=1示例代码【知能进阶】循环结构-嵌套循环【示例】使用for嵌套循环完成“学习计划打卡”:代码结果【知能进阶】循环结构-嵌套循环#学习天数days=int(input("请输入你制定的学习计划的总天数:"))#学生学习的过程print("\t学习计划开始:")fordayinrange(1,days+1):#外层循环:天数

tasks=int(input(f"\t\t请输入你第{day}天学习任务量:"))#每天的学习任务量

total_task=""fortaskinrange(1,tasks+1):#内层循环:任务

sub_task=input(f"\t\t请输入第{day}天第{task}个学习任务:")

total_task=total_task+sub_task+","print(f"\t恭喜你-完成了第{day}天-{total_task}-学习任务\n")print("\n学习计划结束,你已坚持学习,取得了进步!")示例代码【知能进阶】循环结构-嵌套循环Python基础中,break

continue

是用于控制循环流程的两个重要语句。它们通常用于

for

循环和

while

循环中,帮助开发者更灵活地控制循环的执行逻辑。break语句用于

立即终止当前循环,并跳出循环体,继续执行循环之后的代码。

使用场景:①当满足某个条件时,提前结束循环;②在搜索或遍历过程中找到目标后,无需继续循环。【知能进阶】循环控制-break【示例】输入一个数字,如果数字为正数或者0,循环继续;如果输入的数字为负数,循环结束。运行结果【知能进阶】循环控制-break#持续输入数字,遇到负数时退出

whileTrue:

num=int(input("请输入一个数字(输入负数退出):"))

ifnum<0:

print("检测到负数,程序终止")

break

print(f"你输入的是正数/零:{num}")示例代码【知能进阶】循环控制-breakcontinue语句的含义是跳过当前迭代,直接进入下一次循环。

使用场景:①当满足某个条件时,跳过当前循环体的剩余代码,继续下一次循环。②用于过滤某些不需要处理的情况。【知能进阶】循环控制-continue【示例】打印出1-10之间不是3的倍数的所有数字。运行结果【知能进阶】循环控制-continuen=1print("不是3的倍数的数字有:")whilen<=10:ifn%3==0:n+=1#必须递增,否则会死循环continue#跳过3的倍数print(n)n+=1示例代码【知能进阶】循环控制-continue4素养提升返回主目录【任务实践】机器人货物分拣小E负责开发的机器人货物分拣系统,主要功能是对待分拣的货物进行分类。分类的标准是依据货物的类型和重量,将它们划分为“易碎物品”、“重型物品”和“轻型物品”三类。操作流程如下:1)系统首先通过键盘输入来确定需要分拣的货物总数。2)随后,系统会对每一件货物进行循环处理,直到所有货物都被分拣完毕。3)在每轮循环中,系统会提示用户输入当前货物的类型和重量。任务描述4)分类规则如下:如果货物被标记为“易碎”,系统将其归类为“易碎物品”。如果货物不是易碎品,系统会检查其重量是否超过10kg。如果超过10kg,系统将其归类为“重型物品”。如果货物既非易碎品,重量也不超过10kg,系统则将其归类为“轻型物品”。小E的机器人货物分拣系统能够高效完成货物的分类工作,确保每一件货物都能被准确分类。【任务实践】机器人货物分拣【任务实践】机器人货物分拣任务实施(1)创建项目和Python文件打开PyCharm软件,创建项目名为【robot】,在该项目中新建Python文件【sorting_robot.py】。准备好后,就可以在【sorting_robot.py】文件中编写代码了。

(2)定义变量用于存放需要分拣的货物数量,且这个变量需要从键盘输入。【任务实践】机器人货物分拣cargos_num=int(input("请输入需要分拣货物的件数:"))(3)定义存放三类货物件数的初始化计数器。【任务实践】机器人货物分拣fragile_cargos=0

#易碎货物个数heavy_cargos=0

#重型货物个数light_cargos=0

#轻型货物个数(4)通过循环语句,对每件货物进行分类,直到所有货物分拣完成。【任务实践】机器人货物分拣foriinrange(1,cargos_num+1):

print("-"*50)

cargo_type=input("\t请输入第"+str(i)+"件货物类型(易碎、重型、轻型):")

cargo_weight=float(input("\t请输入第"+str(i)+"件货物重量(kg):"))

ifcargo_type=="易碎":

print("\t第",i,"件货物分拣:易碎货物,重量为",cargo_weight,"kg")

fragile_cargos+=1

elifcargo_type=="重型"andcargo_weight>10:

print("\t第",i,"件货物分拣:重型货物,重量为",cargo_weight,"kg")

温馨提示

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

评论

0/150

提交评论