In[6]: number = 0 # 以变量number作被除数,尝试运行除法操作 try: print('1.0 / number =', 1.0 / number) # 如果异常是除零异常,输出提示信息 except ZeroDivisionError: print('***除数为0***') Out[6]: ***除数为0***在代码清单⑤中,由于0不能做除数,因此引发了除零异常 。except代码块由于给出了ZeroDivisionError的解决方案,因此被执行,程序得以完整地运行 。
代码清单⑤所展示的异常之间的层次差别是有意义的,这在程序执行过程中可以体现,如代码清单⑥所示 。
In[7]: dict1={'a': 1, 'b': 2, 'v': 22} # 尝试索引赋值dict中不存在的值 try: x = dict1['y'] except LookupError: print('查询错误') except KeyError: print('键错误') else: print(x) Out[7]: 查询错误 In[8]: # 调换LookupError和KeyError处理代码块的顺序 dict2={'a': 1, 'b': 2, 'v': 22} # 尝试索引赋值dict中不存在的值 try: x = dict2['y'] except KeyError: print('键错误') except LookupError: print('查询错误') else: print(x) Out[8]: 键错误 代码清单⑥展示的try-except-else语句尝试查询不在dict中的键值对,从而引发了异常 。这一异常准确地说应属于KeyError,但由于KeyError是LookupError的子类,且在代码清单⑥中将LookupError置于KeyError之前,因此程序优先执行该except代码块 。所以,使用多个except代码块时,必须坚持对其规范排序,要从最具针对性的异常到最通用的异常 。
除自然发生的异常外,Python中的raise语句可用于故意引发异常 。使用该语句引发异常时,只需在raise后输入异常名即可,如代码清单⑦所示 。
In[9]: # 尝试引发IndexError try: raise IndexError except KeyError: print ('in KeyError except') except IndexError: print('in IndexError except') else: print('no exception') Out[9]: in IndexError except本文摘编自《Python3智能数据分析快速入门》,经出版方授权发布 。

文章插图
延伸阅读《Python3智能数据分析快速入门》
推荐语:本书假设你有一定的数据分析基础,但是没有Python和AI基础,为了帮助你快速掌握智能数据分析需要的技术和方法,书中有针对性地讲解了Python和AI中必须要掌握的知识点,内容由浅入深,循序渐进 。从环境配置、基本语法、基础函数到第三方库的安装与使用,对各个操作步骤、函数、工具、代码示例等的讲解非常详尽,确保所有满足条件的读者都能快速入门 。
【7段代码带你玩转Python条件语句】
推荐阅读
-
Score赛高:韩网友评席位变化:近年除T1还有进四强的?
-
房价涨幅|72.97%!这个“默默无闻”的省会城市,3年来房价涨幅全国第一
-
冠军|英国跳水名将戴利看台上为狗织毛衣走红:还为金牌织了毛线袋
-
-
菜谱365@成功率百分之百,芒果西米露怎么做:奶茶店老师傅说撑握这个方法
-
-
像梦一样奔驰|横测这五款真无线蓝牙耳机,百元级中谁才是更强者?
-
星座听语|曙光再现,爱意未散,表明心意,姻缘重启,找回一生伴侣,10月
-
辽沈大活动家|测出你明年在哪方面会走大运,测试心理:你不敢走进哪座房子
-
羊奶果|农村娃经常吃的这种野果,如今已经涨到30块一斤,种植它错不了
-
emui11|55款机型可以升级EMUI 11,宣传视频泄露MATE40第二项重磅配置
-
中超|进球送点打人染红!中超8000万先生推队友发泄,至少停赛2场
-
叫你“老婆”的男人不一定爱你,敢叫这几个称呼,方是真的认定你
-
奥运会|谷爱凌碾压式夺冠 个人第2金创造历史:我是世界上唯一做过这套动作的女运动员
-
-
刚上初中的妹妹喜欢上了同班的级草并且告诉了我,我该咋办
-
被告人|贪污两千余万用于包养情人、炒股!青岛一干部被判刑!
-
一只背包客@泰国转手卖到千元,却遭中国游客哄抢,这是咋了,80元从中国进口
-
光刻机是国产芯片的“痛中痛”,中国何时可以摘取这颗明珠?
-
穷限制了想象!中国商人买下标价1000万元口罩 N99是个什么级别?