Python的赋值表达式英文原名为Assignment Expressions,因为它太像海象了所以又被称为海象运算符。今天小千就来给大家介绍一下三种常见的赋值表达式的写法,大家来了解一下以防将来遇到不认识。

Python 版本发展非常快,如今最新的版本已经是 Pyhton 3.9,即便如此,有很多人甚至还停留在 3.6 或者 3.7,连 3.8 还没用上。很多 Python 3.8 的特性还没来得及了解,就已经成为旧知识了,比如今天要说的海象运算符。

1、第一个用法:if/else

可能有朋友是第一次接触这个新特性,所以还是简单的介绍一下这个海象运算符有什么用?在 Golang 中的条件语句可以直接在 if 中运算变量的获取后直接对这个变量进行判断,可以让你少写一行代码

若在 Python 3.8 之前,Python 必须得这样子写

但有了海象运算符之后,你可以和 Golang 一样(如果你没学过 Golang,那这里要注意,Golang 中的 := 叫短变量声明,意思是声明并初始化,它和 Python 中的 := 不是一个概念)

2、第二个用法:while

在不使用 海象运算符之前,使用 while 循环来读取文件的时候,你也许会这么写

但有了海象运算符之后,你可以这样

使用它替换以往的无限 while 循环写法更为惊艳比如,实现一个需要命令行交互输入密码并检验的代码,你也许会这样子写

有了海象运算符之后,这样子写更为舒服

3、第三个用法:推导式

这个系列的文章,几乎每篇都能看到推导式的身影,这一篇依旧如此。在编码过程中,我很喜欢使用推导式,在简单的应用场景下,它简洁且不失高效。如下这段代码中,我会使用列表推导式得出所有会员中过于肥胖的人的 bmi 指数

输出如下

可以看到,会员数只有 3 个,但是 get_bmi 函数却执行了 4 次,原因是在判断时执行了 3 次,而在构造新的列表时又重复执行了一遍。如果所有会员都是过于肥胖的,那最终将执行 6 次,这种在大量的数据下是比较浪费性能的,因此对于这种结构,我通常会使用传统的for 循环 + if 判断。

在有了海象运算符之后,你就可以不用在这种场景下做出妥协。

最终从输出结果可以看出,只执行了 3 次

这里仅介绍了列表推导式,但在字典推导式和集合推导式中同样适用。不再演示。海象运算符,是一个新奇的特性,有不少人觉得这样这种特性会破坏代码的可读性。确实在一个新鲜事物刚出来时是会这样,但我相信经过时间的沉淀后,越来越多的人使用它并享受它带来的便利时,这种争议也会慢慢消失在历史的长河中。

本文来自千锋教育,转载请注明出处。

三种常见的Python赋值表达式的写法!相关推荐

  1. python赋值表达式_6. 表达式

    6.表达式¶ 本章将解释 Python 中组成表达式的各种元素的的含义. 语法注释: 在本章和后续章节中,会使用扩展 BNF 标注来描述语法而不是词法分析. 当(某种替代的)语法规则具有如下形式 na ...

  2. 注解分页查询 oracle,oracle分页查询的三种常见写法

    oracle分页查询的三种常见写法分页写法: –分页查询一select * from (select rownum r,e1.* from (select * from emp order by sa ...

  3. python 赋值、表达式

    python 赋值.表达式 赋值的特性 赋值语句建立对象引用 变量名在首次赋值时会被创建 变量名在引用前必须先赋值 赋值语句的形式 序列赋值 >>> A, B = 1, 2 > ...

  4. python给列表的N个元素赋值-*表达式

    python给列表的N个元素赋值-*表达式 # *表达式,给列表的N个元素赋值 list1 = ['aa', 'bb', 'cc', 'dd', 'ee'] a1, *b1, c1 = list1 p ...

  5. python会不会内存泄露_总结python 三种常见的内存泄漏场景

    概要 不要以为 Python 有自动垃圾回收就不会内存泄漏,本着它有"垃圾回收"我有"垃圾代码"的精神,现在总结一下三种常见的内存泄漏场景. 无穷大导致内存泄漏 ...

  6. Python 3.8 的赋值表达式与海象运算符

    1. 简介 Python 3.8 引入了 PEP 572 中描述的新特性--赋值表达式,该语法由 Emily Morehouse 实现.没错,就是下面这个妹子. 2. 语法与语义 赋值表达式,这是 P ...

  7. python-3.8.0 新特性之赋值表达式

    [python-3.8.0 新特性之赋值表达式] 赋值表达式的语法是这样的" name := expression ",形式上看和赋值语句 " = " 差不多, ...

  8. python条件表达式有哪几个_Python中条件表达式的评估顺序是什么?

    我知道python中的条件表达式是x if c else y,但是我在使用它时遇到了一些问题. 我有两个代码要比较. 代码1: 1 2 3 4 5 6 7 8def fun(p): if len(p) ...

  9. stata行业变量怎么赋值_PEP572:赋值表达式(海象符)

    阅读 PEP 是理解 Python 特性的绝好方式.Python 3.8 引入了赋值表达式,它是什么?怎么用?有什么限制?话不多说,直接看 PEP. 一.简介 本提案建议在 Python 中增加 := ...

最新文章

  1. 生态环境部:提升5.5亿居民饮用水环境安全保障水平
  2. Virtual Earth API 在指定zoomLevel添加自定义图层
  3. python使用matplotlib可视化折线图、在可视化图像中同时绘制多条折线图
  4. 中间画一条短竖线_许愿孔明灯怎么画,简约好看的孔明灯简笔画教程
  5. springboot访问静态页面404_解决 springboot 2.x 访问静态资源 404的问题
  6. Google 翻译,梦想与现实的距离有多远
  7. .net 宏定义_C语言基础知识:几种特殊的函数宏封装方式
  8. 数据网站(数据集的获取)、打分网站
  9. 信号与系统课后题答案分享
  10. 2022爱分析· 业财税一体化厂商全景报告
  11. Data Shapley: Equitable Valuation of Data for Machine Learning(翻译)
  12. 《JavaScript 20 年》中文版之语言诞生
  13. CentOS 6.4 电信ADSL拨号上网网络配置
  14. python字符串字母怎么取出_Python需要从字符串中提取第一个和最后一个字母
  15. dw新建一个html网页,Dreamweaver创建网页的基本方法
  16. 微软日语输入法用法说明
  17. Balsamiq Mockups注册码
  18. 掘金总点赞量前 5000 排行发布 | 掘金总关注量前 5000 排行
  19. 去哪儿攻略app v3.9.2 官方iphone版
  20. 【技术向】VOT中的EAO是如何计算的

热门文章

  1. 从傅里叶分析角度解读深度学习的泛化能力
  2. 文档扫描:深度神经网络在移动端的实践
  3. python 中的路径. ./ .. ../和相对路径的写法
  4. python中list是什么意思_python中list和list [:]有什么区别?
  5. Sql高级查询(三)
  6. 【虚拟化】docker部署Rabbitmq
  7. Docker操作容器2
  8. Spring Boot-@ImportResource注解
  9. XCTF WEB weak_auth
  10. 计算机粘贴功能不能用了,电脑复制粘贴不能用了【解决办法】