Python海象运算符的语法是什么及怎么用

寻技术 Python编程 2023年07月12日 62

本文小编为大家详细介绍“Python海象运算符的语法是什么及怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python海象运算符的语法是什么及怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

语法

海象运算符的语法格式是:

(variable_name := expression)

这是一个新的赋值运算符,跟我们常见的 = 类似,一个变量名后面跟一个表达式。

用法

用于 if-else 条件表达式

常规写法:

a = 5
if a > 1:
print('do sth!')

升级写法:

if a := 5 > 1:
print('do sth!')

用于 while 循环

常规写法:

n = 3
while n:
print('do sth!')
n -= 1

升级写法:

n = 3
while (n := n - 1) + 1: 
print('do sth!')

这里加1是因为执行输出前n就减1了。

读取文件

常规写法:

fp = open("test.txt", "r")
while True:
line = fp.readline()
if not line:
break
print(line.strip())
fp.close()

升级写法:

fp = open("test.txt", "r")
while line := fp.readline():
print(line.strip())

在合适的场景中使用海象运算符可以降低程序复杂性,简化代码,甚至可以提高程序的性能。

不适用场景

虽然海象运算符好用,但也不是所有场景都能用,还是有它的局限性的。

变量赋值

我们不能将 = 运算符与 := 运算符一起使用,海象运算符只能是表达式的一部分:

a = 5 # Valid 
a := 5 # InValid 
empty_list = [] # Valid 
empty_list := [] # InValid

如果你这样写,编辑器会直接提示错误。

加减法

a += 5 # Valid
a :+=5 # Invalid

Lambda函数中的赋值表达式

(lambda: a:= 5) # Invalid
lambda: (a := 5) # Valid, but not useful
(var := lambda: 5) # Valid
关闭

用微信“扫一扫”