每天一个Python小技巧(2)

简介: 很多人都用过if/else,但却不知道while和for后面也可以接else

每天一个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的添加步骤也不会再执行。

4.jpg

image

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

5.jpg

image

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


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

6.jpg

image




相关文章
|
3月前
|
存储 索引 Python
Python小技巧:单下划线 '_' 原创
Python小技巧:单下划线 '_' 原创
76 3
|
7月前
|
机器学习/深度学习 C++ Python
Python小技巧:蛇形方阵
Python小技巧:蛇形方阵
|
3月前
|
开发者 索引 Python
7个提升python编程的小技巧
7个提升python编程的小技巧
51 1
7个提升python编程的小技巧
|
3月前
|
开发工具 git Python
Python小技巧:满意的逗号放置
Python小技巧:满意的逗号放置
20 4
|
7月前
|
Python
Python小技巧:一种字符串的排序方式
该文介绍了如何对包含数字的字符串列表进行特定排序。首先,示例了一个初始问题,使用Python内置的`sorted()`函数未能达到预期(按数字部分升序排序)。然后,文章提出通过自定义排序键`sort_key`来解决,利用正则表达式提取字符串尾部数字并进行排序。进一步,文章扩展到处理如'nxxx_name_nxxx'格式的字符串,通过给前缀和后缀数字赋予不同权重进行复合排序,展示了如何实现先按前缀、再按后缀排序的功能。提供的代码示例成功地完成了任务。
|
3月前
|
存储 索引 Python
Python小技巧:单下划线 ‘_‘
Python小技巧:单下划线 ‘_‘
18 0
|
3月前
|
SQL 关系型数据库 MySQL
Python小技巧——将CSV文件导入到MySQL数据库
Python小技巧——将CSV文件导入到MySQL数据库
160 0
|
4月前
|
索引 Python
干货!20个Python使用小技巧
干货!20个Python使用小技巧
|
5月前
|
Python
Python小技巧:一种字符串的排序方式
Python小技巧:一种字符串的排序方式
53 0
|
6月前
|
Python
Python一些实用小技巧
Python一些实用小技巧
22 0