Python第34课练习--异常处理:丰富的else语句和简洁的with语句
发布时间:2019-08-14 15:13:01
作者:xhs
Python第34课练习--异常处理:丰富的else语句和简洁的with语句:1。在python中还有什么语句可以匹配?答:在python中,else语句不仅可以与if语句配对,以形成“非此即彼”的上下文;它还可以与循环(for或while)结合使用,以创建“一旦你做了你能做的,就不要做你不能做的”上下文。实际上,else可以用于匹配我们刚才在“没问题,让我们做吧”上下文中讨论的异常处理。2。循环中的break语句是否将跳过以下示例中的else语句?求一个数的最大除数def showmaxfactor(数字):计数=数字//2当计数大于1时:如果num%count==0:print(“%d最大除数是%d%”(num,count))。打破计数-=1其他:打印(“%d”是prime!”%num)num=int(“请输入一个数字:”)ShowMaxFactor(数字)答:ELSE语句被跳过,因为ELSE与一个循环(while和for)成对出现,所以ELSE语句块的内容在循环正常完成之前不会执行。三。请目视检查以下代码将打印什么?尝试:打印(“ABC”)除了:打印(“def”)其他:打印(“GHI)最后:打印(“jkl”)答:只有except语句不打印,因为try语句块中没有异常,所以还会执行else语句块。输出:基础知识GHIJKL4。您可以使用什么语句来停止担心打开文件而忘记关闭它?答:使用WITH语句。例如:尝试:打开(“”数据)。txt“,”w”)作为f:对于F中的每一行:打印(每行)除了“原因:print('c错误:'+str(原因))5。WITH语句很方便,但是如果出现异常,文件是否可以自动关闭?答:WITH语句自动处理文件的打开和关闭,如果一路上发生异常,则执行清除代码,然后自动关闭文件。6。你能用不同的形式写下下图中的伪代码吗?图像。巴布亚新几内亚答:当使用WITH语句处理多个项时,可以编写一个用逗号分隔的语句。将a()作为a,b()作为b,一套7。使用WITH语句重写以下代码。让python关心打开和关闭文件。def文件比较(file1,file2):F1=打开(文件1)F2=打开(文件2)计数=0计数行总是计算不同的金额对于,F1中的第1行:第2行=第2层。阅读线()计数+=1如果,第1行!=第2行:不同。附加(计数)F1。结束()F2。结束()返回差异file1=input('请输入要比较的第一个文件:')file2=input('请输入另一个要比较的文件:')differ=文件比较(file1,file2)如果len(differ)==0:print(“两个文件完全相同!”)其他:print('两个文件都有所有的差异〔%d〕:%len(differ))对于每种不同的:打印(“%d行不同”“”,每个)答:修改如下:def文件比较(file1,file2):当open(file1)为f1时,open(file2)为f2:。#计数=0计数行总是计算不同的金额对于,F1中的第1行:第2行=第2层。阅读线()计数+=1如果,第1行!=第2行:不同。附加(计数)返回差异file1=input('请输入要比较的第一个文件:')file2=input('请输入另一个要比较的文件:')differ=文件比较(file1,file2)如果len(differ)==0:print(“两个文件完全相同!”)其他:print('两个文件都有所有的差异〔%d〕:%len(differ))对于每种不同的:打印(“%d行不同”“”,每个)可以使用异常原则修改以下代码以提高效率吗?查询通讯簿打印(欢迎使用通讯簿程序)打印('-----1:查询联系人数据-----')打印('--2:插入新联系人--')打印('--3:删除现有联系人--')打印(“-----4:退出通讯簿程序-----”)。联系人=dict()而1:instr=int(输入(“\n请输入相关的指令代码”))如果instr==1:name=input('请输入联系人姓名:')如果联系人中的姓名:联系人[姓名]打印(姓名+':'+联系人[姓名])其他:print(“您键入的名称不在通讯簿中!”)如果instr==2:name=input('请输入联系人姓名:')如果联系人中的姓名:print(“您键入的名称已存在于通讯簿中”-->“,end=”)联系人[姓名]打印(姓名+':'+联系人[姓名])if input('是否修改用户数据(是/否):')='是':contacts[名称]=输入(“请输入用户联系人号码:”)其他:contacts[名称]=输入(“请输入用户联系人号码:”)如果instr==3:name=input('请输入联系人姓名:')如果联系人中的姓名:del(contacts[姓名])也可用于dict.pop其他:print(“您键入的联系人不存在!”)如果instr==4:打破打印(“---感谢您使用通讯簿——”)答:使用条件语句的代码很简单,但不高效。引文程序访问字典键两次,一次确定它是否存在(例如,如果联系人中有姓名),另一次获取值(例如,打印(姓名+':'+联系人[姓名])。通过一个异常解决方案,我们可以简单地避免需要执行的每个操作,以确定字典中是否存在键。只要在字典中不存在键时触发keyError异常,就可以使用此功能修改代码,如下所示:查询通讯簿打印(欢迎使用通讯簿程序)打印('-----1:查询联系人数据-----')打印('--2:插入新联系人--')打印('--3:删除现有联系人--')打印(“-----4:退出通讯簿程序-----”)。联系人=dict()而1:instr=int(输入(“\n请输入相关的指令代码”))如果instr==1:name=input('请输入联系人姓名:')尝试:已在此处修改联系人[姓名]打印(姓名+':'+联系人[姓名])除了keyError:更改了这个print(“您键入的名称不在通讯簿中!”)如果instr==2:name=input('请输入联系人姓名:')尝试:已在此处修改print(“您键入的名称已存在于通讯簿中”-->“,end=”)联系人[姓名]打印(姓名+':'+联系人[姓名])if input('是否修改用户数据(是/否):')='是':contacts[名称]=输入(“请输入用户联系人号码:”)除了keyError:更改了这个contacts[名称]=输入(“请输入用户联系人号码:”)如果instr==3:name=input('请输入联系人姓名:')尝试:已在此处修改del(contacts[姓名])也可用于dict.pop除了keyError:更改了这个print(“您键入的联系人不存在!”)如果instr==4:打破打印(“---感谢您使用通讯簿——”)Python第34课练习--异常处理:丰富的else语句和简洁的with语句
版权声明:本文内容由互联网用户投稿整理编辑发布,不拥有所有权,不承担应有相关法律责任。如果文章、图片有涉嫌抄袭的内容,请发送到邮箱举报,且提供抄袭的相关证据,一但查实,会在24小时删除涉嫌侵权内容。