python学习--迭代器和异常处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python学习--迭代器和异常处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3077字,纯文字阅读大概需要5分钟。
内容图文
![python学习--迭代器和异常处理](/upload/InfoBanner/zyjiaocheng/1132/57cbc16f85524f0cbd8019225c62454d.jpg)
一、迭代器
Python迭代器
简介:可以被 next() 函数调用并不断返回下一个值的对象成为迭代器
iter() : 把可迭代对象 => 迭代器
next(): 调用迭代器中迭代对象
>所有可直接作用于 for 循环的数据类型都是迭代对象
>所有使用next() 方法的函数都是迭代器类型
>集合(set) 数据类型是迭代器对象但不是迭代器,不过可以通过 iter()
方法获得一个迭代器对象。
代码:
1.
a = [‘a‘,‘b‘,‘c‘] a_iter =iter(a) print(next(a_iter)) print(next(a_iter))
运行结果:
E:\python_VS_code\directory[目录]>D://py3.6//python.exe e:/python_VS_code/directory[目录]/demo0801/demo01.py
a
b
结果可见:iter() 方法把列表转换为一个迭代器,next() 方法调用迭代器对象。
2.
>迭代器
>循环控制流程
>异常处理
代码:
‘‘‘
城市信息展示 (省市级联显示) ‘‘‘ dict_city = {‘陕西‘:[‘西安‘,‘咸阳‘,‘榆林‘,‘铜川‘], ‘河南‘:[‘郑州‘,‘开封‘,‘安阳‘,‘商丘‘], ‘湖北‘:[‘武汉‘,‘黄冈‘,‘周口‘,‘禹州‘]} dict_iter = iter(dict_city) dict_val = iter(dict_city.values()) while True: try: pro_name = next(dict_iter) print(‘--%s--‘%pro_name) val = next(dict_val) val_name = iter(val) while True: try: print(‘|--%s‘%next(val_name)) except StopIteration: print(‘--‘*20) breakexcept StopIteration: print(‘结束‘) break
运行结果:
E:\python_VS_code\directory[目录]>D://py3.6//python.exe e:/python_VS_code/directory[目录]/demo0801/py_flie.py --陕西-- |--西安 |--咸阳 |--榆林 |--铜川 ---------------------------------------- --河南-- |--郑州 |--开封 |--安阳 |--商丘 ---------------------------------------- --湖北-- |--武汉 |--黄冈 |--周口 |--禹州 ---------------------------------------- 结束
结果可见:使用循环遍历字典信息
二、异常处理
1.
try:
# 错误位置
except 错误类型:
# 捕获错误,处理错误
else:
# 错误未发生,一切正常
finally:
# 无论错误有无发生,都执行
异常书写:
# 获得两个数值 num1=input("请输入第一个数") num2=input("请输入第二个数") # print(num1/num2) #相除的两个数的转换try: a=int(num1) b=int(num2) a/b str1="a" info =str1[3] except ValueError: print("请输入数字") except ZeroDivisionError: print("除数不能为零") except: #任何异常的捕获print("异常发生") finally: print("程序执行结束") #try 中捕获异常 当任何异常都可处理的except处于第一个except 后续就不允许出现excepttry: a=int(num1) b=int(num2) a/b str1="a" info =str1[3] except ValueError: print("请输入数字") except ZeroDivisionError: print("除数不能为零") except: #任何异常的捕获print("异常发生") finally: print("程序执行结束")
运行结果:
E:\python_VS_code\directory[目录]>D://py3.6//python.exe e:/python_VS_code/directory[目录]/demo0801/py_except(multi).py 请输入第一个数10 请输入第二个数0 除数不能为零 程序执行结束 除数不能为零 程序执行结束 E:\python_VS_code\directory[目录]>D://py3.6//python.exe e:/python_VS_code/directory[目录]/demo0801/py_except(multi).py 请输入第一个数a 请输入第二个数2 请输入数字 程序执行结束 请输入数字 程序执行结束
结果可见: 两个不同错误类型出现不同结果,多错误异常处理。
3.自定义异常
raise... 发生异常
自定义异常类
class AgeExcept(Exception): pass age=1000 #年龄值# 当年龄大于150异常try: if age>150: raise AgeExcept(‘年龄。。。。‘) #认为发生异常 手动# int(‘a‘)except AgeExcept as ex : print(ex) print("异常发生 ") # 只是临时自定义,并非永久。 int(‘a‘)
运行结果:
E:\python_VS_code\directory[目录]>D://py3.6//python.exe e:/python_VS_code/directory[目录]/demo0801/py_except(custom).py 年龄。。。。 异常发生 Traceback (most recent call last): File "e:/python_VS_code/directory[目录]/demo0801/py_except(custom).py", line 28, in <module> int(‘a‘) ValueError: invalid literal for int() with base 10: ‘a‘
结果可见:异常名可自定义,但仅是临时修改
原文:https://www.cnblogs.com/lifengyuan/p/9403599.html
内容总结
以上是互联网集市为您收集整理的python学习--迭代器和异常处理全部内容,希望文章能够帮你解决python学习--迭代器和异常处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。