千家信息网

Python开发技巧之海象运算符的运用方式有哪些

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"Python开发技巧之海象运算符的运用方式有哪些",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python开发技巧之海象运算符的运
千家信息网最后更新 2026年11月02日Python开发技巧之海象运算符的运用方式有哪些

这篇文章主要讲解了"Python开发技巧之海象运算符的运用方式有哪些",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python开发技巧之海象运算符的运用方式有哪些"吧!

目录
  • 1. 第一个用法:if/else

  • 2. 第二个用法:while

  • 3. 第三个用法:推导式

Python 版本发展非常快,如今最新的版本已经是 Pyhton 3.9,即便如此,有很多人甚至还停留在 3.6 或者 3.7,连 3.8 还没用上。

很多 Python 3.8 的特性还没来得及了解,就已经成为旧知识了,比如今天要说的海象运算符。

海象运算符是在 PEP 572 被提出的,直到 3.8 版本合入发布。

它的英文原名叫 Assignment Expressions,翻译过来也就是 赋值表达式,不过现在大家更普遍地称之为海象运算符,就是因为它长得真的太像海象了。

1. 第一个用法:if/else

可能有朋友是第一次接触这个新特性,所以还是简单的介绍一下这个海象运算符有什么用?

在 Golang 中的条件语句可以直接在 if 中运算变量的获取后直接对这个变量进行判断,可以让你少写一行代码

import "fmt"func main() {    if age := 20;age > 18 {        fmt.Println("已经成年了")    }}

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

age = 20if age > 18:    print("已经成年了")

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

age = 20if age > 18:    print("已经成年了")

2. 第二个用法:while

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

file = open("demo.txt", "r")while True:    line = file.readline()    if not line:        break    print(line.strip())

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

file = open("demo.txt", "r")while (line := file.readline()):    print(line.strip())

使用它替换以往的无限 while 循环写法更为惊艳

比如,实现一个需要命令行交互输入密码并检验的代码,你也许会这样子写

while True:   p = input("Enter the password: ")   if p == "youpassword":      break

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

while (p := input("Enter the password: ")) != "youpassword":   continue

3. 第三个用法:推导式

这个系列的文章,几乎每篇都能看到推导式的身影,这一篇依旧如此。

在编码过程中,我很喜欢使用推导式,在简单的应用场景下,它简洁且不失高效。

如下这段代码中,我会使用列表推导式得出所有会员中过于肥胖的人的 bmi 指数

members = [    {"name": "小五", "age": 23, "height": 1.75, "weight": 72},    {"name": "小李", "age": 17, "height": 1.72, "weight": 63},    {"name": "小陈", "age": 20, "height": 1.78, "weight": 82},]count = 0def get_bmi(info):    global count    count += 1    print(f"执行了 {count} 次")    height = info["height"]    weight = info["weight"]    return weight / (height**2)# 查出所有会员中过于肥胖的人的 bmi 指数fat_bmis = [get_bmi(m) for m in members if get_bmi(m) > 24]print(fat_bmis)

输出如下

执行了 1 次
执行了 2 次
执行了 3 次
执行了 4 次
[25.88057063502083]

可以看到,会员数只有 3 个,但是 get_bmi 函数却执行了 4 次,原因是在判断时执行了 3 次,而在构造新的列表时又重复执行了一遍。

如果所有会员都是过于肥胖的,那最终将执行 6 次,这种在大量的数据下是比较浪费性能的,因此对于这种结构,我通常会使用传统的for 循环 + if 判断。

fat_bmis = []# 查出所有会员中过于肥胖的人的 bmi 指数for m in members:    bmi = get_bmi(m)    if bmi > 24:        fat_bmis.append(bmi)

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

# 查出所有会员中过于肥胖的人的 bmi 指数fat_bmis = [bmi for m in members if (bmi := get_bmi(m)) > 24]

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

执行了 1 次
执行了 2 次
执行了 3 次
[25.88057063502083]

这里仅介绍了列表推导式,但在字典推导式和集合推导式中同样适用。不再演示。

海象运算符,是一个新奇的特性,有不少人觉得这样这种特性会破坏代码的可读性。确实在一个新鲜事物刚出来时是会这样,但我相信经过时间的沉淀后,越来越多的人使用它并享受它带来的便利时,这种争议也会慢慢消失在历史的长河中。

感谢各位的阅读,以上就是"Python开发技巧之海象运算符的运用方式有哪些"的内容了,经过本文的学习后,相信大家对Python开发技巧之海象运算符的运用方式有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

海象 运算符 运算 会员 肥胖 技巧 方式 开发 代码 指数 特性 变量 成年 样子 版本 学习 循环 三个 内容 场景 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网佳科技有限公司 苏州找大状互联网科技有限公司 互联网最新的科技 互联网科技深圳 致骋互联网科技 碳银互联网科技 亿账通互联网科技 深圳艾佳互联网科技 天扬科技互联网广告 科技赋能互联网健康 互联网和高科技公司 崇明区互联网教育科技售后服务 恒生互联网科技指数跳水 广州市恰铎互联网科技有限公司 哈尔滨屹滨互联网科技有限公司 开一家科技互联网公司需要多少钱 互联网方面的科技前沿 中国科技和美国互联网 互联网科技对化妆品行业 互联网 科技节活动 微视频大赛 互联网科技 互联网最新的科技 互联网科技股有哪些 天扬科技互联网广告 栖莱科技互联网股份有限公司 速维有品互联网信息科技(苏州)有限公司 朱啸虎曾投资哪些互联网科技企业 云南省自由互联网科技有限公司 美国五大互联网科技公司市值多少 优雇互联网科技有限公司
0