python - 踩坑 - for in else 连用记录

作为python萌新,现在在看大佬写的抽取代码,其中一段是这么写的。

        for mc in ajlx_map:
            if mc in ajlbmc:
                ajlbbm = ajlx_map[mc]
                return '%s/%s/%s/%s' % (cbdwbm, year, ajlbbm, bmsah)
        else:
            fqdwbm = get_fqdwbm_from_bmsah(bmsah)
            sql = "SELECT   AJLB_BM " \
                  "FROM     TYYW.TYYW_GG_AJJBXX " \
                  "WHERE    BMSAH = '%s' " \
                  % bmsah
            ajlbbm = self.query(fqdwbm, sql)[0][0]
            return '%s/%s/%s/%s' % (cbdwbm, year, ajlbbm, bmsah)

 

一开始是一脸懵逼,查询后结果:

python的循环,如:while , for in 都可以有else这么一个分支可选。当循环正常迭代完之后,会执行else语句;如果想不执行else分支语句,可以在循环中添加break,return(结束当前方法);

示例:

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

class XunHuan:

    def __init__(self):
        pass

    def check(a):
        for i in a:
            print(i)
            # break
            # return 
        else:
            print('else')
        print('method_test_end')

    if __name__ == '__main__':
        a = [1, 2, 3]
        check(a)

当前正常执行结果:

1
2
3
else
method_test_end

放开break:

1
method_test_end

注释break,放开return结果:

1

 

转载于:https://my.oschina.net/zyldsy/blog/1590257

你可能感兴趣的:(python)