运算符_赋值运算符
赋值运算符 =
执行顺序:从右到左(右结合性)
example: a = 1+2
print(a)//output:3
注意输出不是1,因为运算符是从右到左执行的
支持链式赋值 a=b=c=20
这边的顺序是
c=20
b=c
a=b
这边的程序证明了之前讲述的规则是错误的,确实标识符存放的地址会根据右边的参数进行变化
注意这边的有趣的地方在于如果是链式复制的话,这些变量的id是一样的,这与python的赋值语句有关系
也就是说a,b,c这三者指向了同一个空间
a=b=c=20
print(a, id(a))
print(b, id(b))
print(c, id(c))
a=30
print(a, id(a))
print(b, id(b))
以上的代码可以很清楚的展示这一特性,当然还要注意此时改变a的值并不会改变bc的值,改变的其实是a的指向罢了
链式赋值实际上只有一个对象,只是多引用指向同一个对象罢了
支持参数赋值 += -= *= /= //= %=
a+=30等价于a=a+30
这边的语法规则同C中是一样的,笔者这边就不再缀叙了
这边稍微注意进行除法赋值的时候其中的整型会被转换成浮点型输出
支持系列解包赋值 a,b,c=20,30,40
意思是a=20 b=30 c=40
这边要求等号左右的个数必须是相同的,否则会报错
上面的这段代码是由20,30,40这三个对象分别赋值给a,b,c
感觉是对链式赋值的另外一种对偶的关系
这边注意个数必须相同,同时顺序也是一一对应的
系列解包赋值的好处在于交换变量的值的时候
在C语言中最稳妥的交换变量的方式是三元转换,借助中间变量
但是在python中可以直接交换
a,b=b,a //变得更加简便了
a,b=10,20
a,b=b,a
print(a, b)//output:20 10
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)