鱼C论坛

 找回密码
 立即注册
查看: 1096|回复: 15

[已解决]最新版本的python,海象赋值是咋用的啊?

[复制链接]
发表于 2020-5-15 15:33:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

能具体讲讲应用上和=的区别么?
最佳答案
2020-5-15 15:37:11
>>> if (a:=5) == 5:
        print(a)

        
5
就是可以方便的赋值,在if/循环里面赋值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-15 15:34:50 | 显示全部楼层
一个等号 是赋值 ,两个等号 是 判断
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 15:37:11 | 显示全部楼层    本楼为最佳答案   
>>> if (a:=5) == 5:
        print(a)

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

评分

参与人数 1鱼币 +1 收起 理由
sunrise085 + 1 你们都好快啊,我编辑完后他都评完最佳了。.

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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,翻译过来也就是 赋值表达式,不过现在大家更普遍地称之为海象运算符,就是因为它长得真的太像海象了(看图)。
image-20200418122739417.png
更多详情:https://www.cnblogs.com/wongbingming/p/12743802.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-15 15:39:10 | 显示全部楼层
wuqramy 发表于 2020-5-15 15:38
在Python中
单等号(=)表示赋值:

看题!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 15:39:58 | 显示全部楼层
wuqramy 发表于 2020-5-15 15:38
在Python中
单等号(=)表示赋值:

lz说海象运算符,你搁这说=和==。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 15:41:06 | 显示全部楼层
Twilight6 发表于 2020-5-15 15:34
一个等号 是赋值 ,两个等号 是 判断

看题!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 15:42:14 | 显示全部楼层
wuqramy 发表于 2020-5-15 15:38
在Python中
单等号(=)表示赋值:

哈哈哈  有默契
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 15:44:49 | 显示全部楼层
qiuyouzhi 发表于 2020-5-15 15:37
就是可以方便的赋值,在if/循环里面赋值。

学到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-15 15:45:32 | 显示全部楼层
qiuyouzhi 发表于 2020-5-15 15:37
就是可以方便的赋值,在if/循环里面赋值。

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

报错的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 15:45:50 | 显示全部楼层
@qiuyouzhi 还有@永恒的蓝色梦想 还在编辑哩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 15:46:40 | 显示全部楼层


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-15 15:47:22 | 显示全部楼层
mathcad里边有这个
:=
=

这三种  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 15:50:36 | 显示全部楼层
wuqramy 发表于 2020-5-15 15:45
@qiuyouzhi 还有@永恒的蓝色梦想 还在编辑哩

???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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荣誉 +3 鱼币 +3 贡献 +3 收起 理由
Daniel_Zhang + 3 + 3 + 3 无条件支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-21 04:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表