码迷,mamicode.com
首页 > 编程语言 > 详细

写好Python之For循环

时间:2014-06-16 23:51:31      阅读:423      评论:0      收藏:0      [点我收藏+]

标签:code   get   strong   使用   c++   代码   

写好Python之For循环

使用在循环中使用enumerate函数而不是使用"index"变量

从其他语言转过来的Python程序员,过去可能通常通过使用申明一个变量来跟踪遍历索引,,例如在C++:

for (int i=0; i < container.size(); ++i)
{
    // Do stuff
}

在Python,内建的enumerate函数可以扮演该角色

糟糕的

my_container = [‘Larry‘, ‘Mode‘, ‘Curly‘]
index = 0
for element in my_container:
    print("{} {}".format(index, element))
    index += 1

推荐的

my_container = [‘Larry‘, ‘Mode‘, ‘Curly‘]
for index, element in enumerate(my_container):
    print("{} {}".format(index, element))

使用in关键字来遍历迭代

从其他语言转来的程序员可能没有使用过 for each 风格来遍历迭代,大部分使用索引来访问元素。Python的in关键字优雅的处理该任务。

糟糕的

my_list = [‘Larry‘, ‘Moe‘, ‘Curly‘]
index = 0
while index < len(my_list):
    print(my_list[index])
    index += 

推荐的

my_list = [‘Larry‘, ‘Moe‘, ‘Curly‘]
for element in my_list:
    print(element)

使用else执行for遍历后执行代码

鲜为人知的是Python可以在for语言包含else子句。else子句在遍历结束后执行。除非for语句被break终端。这样允许在for没有break中执行相关代码,也就是有条件的执行。

在以下场景中,我们执行报表来检查邮箱地址是否有效(用户可注册多个邮箱)。

糟糕的

for user in get_all_users():
    has_malformed_email_address = False
    print (‘Checking {}‘.format(user))
    for email_address in user.get_all_email_addresses():
        if email_is_malformed(email_address):
            has_malformed_email_address = True
            print (‘Has a malformed email address!‘)
            break
    if not has_malformed_email_address:
        print (‘All email addresses are valid!

推荐的

for user in get_all_users():
    print("Checking {}".format(user))
    for email_address in user.get_all_email_addresses():
        if email_is_malformed(email_addresss):
            print("Has a malformed email address!")
            break
    else:
        print("All email addresses are valid!")

写好Python之For循环,布布扣,bubuko.com

写好Python之For循环

标签:code   get   strong   使用   c++   代码   

原文地址:http://www.cnblogs.com/erhuabushuo/p/3789981.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!