zoukankan      html  css  js  c++  java
  • 每天一个Python小技巧(2)

    每天一个Python小技巧(2)

    大家好,这里是米洛,一个想和大家一起分享测试开发相关的技术,面试经验和成长经历的博主!

    欢迎大家关注我的公众号: 测试开发坑货

    if else

    很多人都用过if/else,但却不知道whilefor后面也可以接else。

    故事

    有这样一个列表,里面存放了一些牛逼人物的信息:

    data = [
        {"name": "迷龙", "age": 21},
        {"name": "汤总", "age": 18},
        {"name": "骆俊", "age": 23}
    ]
    

    今天,老板给我下了个命令,要求牛逼人物列表里必须加入"芳龄28的榜一大哥",而且还不能重复,不然就要炒我鱿鱼!

    我心想,这还不简单吗,于是奋笔疾书:

    def main(data):
       found = False
       for d in data:
           if d.get("name") == "榜一大哥":
               found = True
               break
       if not found:
           data.append({"name": "榜一大哥", "age": 28})
    

    我这里用了个变量,去判断找到榜一大哥没有,代码很简单,我奶奶都能看懂。


    for和while中的else

    先说格式(while与for是一样的):

    for x in xx:
       pass
    else:
        pass
    

    再谈else的执行条件:

    1. 如果循环正常结束, 如果有else语句块则会执行else部分;
    2. 如果循环不正常结束, 比如通过break离开了for循环,那else部分则不会执行。

    while和for如出一辙。

    改写例子

    data = [
        {"name": "迷龙", "age": 21},
        {"name": "汤总", "age": 18},
        {"name": "骆俊", "age": 23}
    ]
    print("执行之前", data)
    for d in data:
        if d.get("name") == "榜一大哥":
            break
    else:
        data.append({"name": "榜一大哥", "age": 28})
    print("执行之后", data)
    

    遍历data数组,如果里面有name等于榜一大哥的数据,直接break,那么else的添加步骤也不会再执行。

    我们加上芳龄23的榜一大哥再测测!

    可以看到数据没有增加,说明else的逻辑没有执行。

    你以为只有while和for支持else吗?其实try/except也可以跟else。

  • 相关阅读:
    男子汉要响当当面对自己写出的程序
    北京天气变化,记下它
    面向对象的设计原则-类设计原则
    JSSCript打开X3,并设置IE窗口样式
    “做人做事”的信条
    工作角色的定位
    JS语法字典网友总结
    处理多个选择结果
    Jquery获得控件值的方法
    选择器
  • 原文地址:https://www.cnblogs.com/we8fans/p/15041129.html
Copyright © 2011-2022 走看看