rsj0315 发表于 2020-5-15 15:33:44

最新版本的python,海象赋值是咋用的啊?

最新的python说多了:=
这个赋值的功能

能具体讲讲应用上和=的区别么?

Twilight6 发表于 2020-5-15 15:34:50

一个等号 是赋值 ,两个等号 是 判断

qiuyouzhi 发表于 2020-5-15 15:37:11

>>> if (a:=5) == 5:
        print(a)

       
5
就是可以方便的赋值,在if/循环里面赋值。

wuqramy 发表于 2020-5-15 15:38:26

本帖最后由 wuqramy 于 2020-5-15 15:44 编辑

在Python中
单等号(=)表示赋值:
>>> a = 1
>>> a
1
双等号(==)表示判断等号两边是否相等
是返回True,否则返回False
>>> a == 1
True
>>> a == 2
False
继续
海象运算符(:=)是在 PEP 572 被提出的,直到 3.8 版本合入发布。
它的英文原名叫 Assignment Expressions,翻译过来也就是 赋值表达式,不过现在大家更普遍地称之为海象运算符,就是因为它长得真的太像海象了(看图)。

更多详情:https://www.cnblogs.com/wongbingming/p/12743802.html

永恒的蓝色梦想 发表于 2020-5-15 15:39:10

wuqramy 发表于 2020-5-15 15:38
在Python中
单等号(=)表示赋值:



看题!

qiuyouzhi 发表于 2020-5-15 15:39:58

wuqramy 发表于 2020-5-15 15:38
在Python中
单等号(=)表示赋值:



lz说海象运算符,你搁这说=和==。。

永恒的蓝色梦想 发表于 2020-5-15 15:41:06

Twilight6 发表于 2020-5-15 15:34
一个等号 是赋值 ,两个等号 是 判断

看题!

Twilight6 发表于 2020-5-15 15:42:14

wuqramy 发表于 2020-5-15 15:38
在Python中
单等号(=)表示赋值:



哈哈哈有默契{:10_275:}{:10_311:}

Twilight6 发表于 2020-5-15 15:44:49

qiuyouzhi 发表于 2020-5-15 15:37
就是可以方便的赋值,在if/循环里面赋值。

学到了{:10_275:}

rsj0315 发表于 2020-5-15 15:45:32

qiuyouzhi 发表于 2020-5-15 15:37
就是可以方便的赋值,在if/循环里面赋值。

测试了,是这样的;
如果写
if (a=5)==5:
    print(a)

报错的

wuqramy 发表于 2020-5-15 15:45:50

@qiuyouzhi 还有@永恒的蓝色梦想 还在编辑哩

wuqramy 发表于 2020-5-15 15:46:40

Twilight6 发表于 2020-5-15 15:42
哈哈哈有默契

{:10_311:}{:10_275:}
{:10_340:}

rsj0315 发表于 2020-5-15 15:47:22

mathcad里边有这个
:=
=

这三种

永恒的蓝色梦想 发表于 2020-5-15 15:50:36

wuqramy 发表于 2020-5-15 15:45
@qiuyouzhi 还有@永恒的蓝色梦想 还在编辑哩

???

sunrise085 发表于 2020-5-15 16:01:57

本帖最后由 sunrise085 于 2020-5-15 16:06 编辑

海象赋值就是为了肩上代码的重复执行,提高运行效率优化代码量而设计了。
作用是为一个表达式进行命名,在下面方便使用,而不必多次执行该表达式
主要用于条件判断中,例如if条件,while循环条件等等
看下面的例子,len(str1)是个表达式,用于求字符串str1的长度,在if条件中用到了,调用了一次len()函数,在下面的print函数中用到了,又调用了len()函数,相当于重复执行了该表达式,若是while循环的话,消耗的 时间可能会更长。而第二种写法,又使得代码变长了。
str1="abcdefg"
#第一种写法
if len(str1)>5:
    print(str1,"的长度是",len(str1))
#第二种写法
n=len(str1)
if n>5:
    print(str1,"的长度是",n)
若是使用海象赋值则是这样的,既精简了代码量,有减少了运行时间。
str1="abcdefg"
if n:=len(str1)>5:
    print(str1,"的长度是",n)
它和赋值"="是不一样的。
一般变量的赋值不能用":=",而像上述这种赋值也不能使用"="
#错误写法
if n=len(str1)>5:
    print(str1,"的长度是",n)

#错误写法
num:=123
empty_list := []
页: [1]
查看完整版本: 最新版本的python,海象赋值是咋用的啊?