python

当前位置:首页 > python基础教程 > 当前文章

python基础教程

try excep在for循环中的使用易错点

2020-08-01 174赞 python中国网
每篇文章努力于解决一个问题!python高级、python面试全套、操作系统经典课等可移步文章底部。

  当for循环遇到try except应该如何正确使用呢?有些同学在写程序的时候懒省事直接把try语句写在了for循环的外层,这样一来可能造成程序运行并非你的预期。

  比如现在有个变量num,有个列表lis,需求:把列表所有的元素减去1以后在用num除以它。

  考虑到列表元素减1之后可能是0,而除以0会有异常。于是为了避免程序停止就做了异常处理,但是就用了下面的写法:

# -*- coding: utf-8 -*-

num = 10
lis = [1,2,3,4,5]
new_lis = [i-1 for i in lis]
try:
    for i in new_lis:
        print(num/i)
except Exception as e:
    print(e)

division by zero


  以上写法并没有错误,但是不是你想要的处理结果。因为你写在外部,整个for循环体内一旦出现异常就直接被捕捉到从而跳到except代码段执行,正确的写法应该是把try except语句写到循环内部判断除以每一个元素是否异常。

# -*- coding: utf-8 -*-

num = 10
lis = [1,2,3,4,5]
new_lis = [i-1 for i in lis]
for i in new_lis:
    try:
        print(num/i)
    except Exception as e:
        print(e)
division by zero
10.0
5.0
3.3333333333333335
2.5

文章评论

try excep在for循环中的使用易错点文章写得不错,值得赞赏