python中的赋值操作与C语言中的赋值操作中的巨大差别
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python中的赋值操作与C语言中的赋值操作中的巨大差别,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1823字,纯文字阅读大概需要3分钟。
内容图文
![python中的赋值操作与C语言中的赋值操作中的巨大差别](/upload/InfoBanner/zyjiaocheng/740/516017637bb9482f92c5d831b52922a5.jpg)
首先让我们来看一个简单的C程序:
![python中的赋值操作与C语言中的赋值操作中的巨大差别 - 文章图片](/upload/getfiles/0001/2021/5/4/20210504015426202.jpg)
![python中的赋值操作与C语言中的赋值操作中的巨大差别 - 文章图片](/upload/getfiles/0001/2021/5/4/20210504015426264.jpg)
1 a = 8; 2 b = a; 3 b = 6; 4 printf("a = %d, b = %d\n", a, b);View Code
相信只要学过C语言, 不用运行程序便能知道程序将会打印出a = 8, b = 6.
现在让我们来看一看这个程序的python版本
![python中的赋值操作与C语言中的赋值操作中的巨大差别 - 文章图片](/upload/getfiles/0001/2021/5/4/20210504015426202.jpg)
![python中的赋值操作与C语言中的赋值操作中的巨大差别 - 文章图片](/upload/getfiles/0001/2021/5/4/20210504015426264.jpg)
1 a = 8 2 b = a 3 b = 6 4 print(a, b)View Code
让我们来看一看运行结果:
似乎一切都正常。
不,要是真的是那么简单,那要我干嘛!!!
看,程序又来了。。。
![python中的赋值操作与C语言中的赋值操作中的巨大差别 - 文章图片](/upload/getfiles/0001/2021/5/4/20210504015426202.jpg)
![python中的赋值操作与C语言中的赋值操作中的巨大差别 - 文章图片](/upload/getfiles/0001/2021/5/4/20210504015426264.jpg)
1 name = ['fujian', 'beijing', 'shanghai'] 2 name2 = name 3 name2[1] = 'tainjing' 4 print(name) 5 print(name2)python程序
结果是不是还是我们所想的那样:
['fujian', 'beijing', 'shanghai']
['fujian', 'tainjing', 'shanghai']
可现实是:
Why!Why!Why!
原因如下:
1. c语言中的变量好比一个盒子,a = 8就好比将8这个数据放入了这个名为a的盒子中;而python在这一方面与C语言可算是天壤之别;
python中的变量有点类似C语言中指针, a = 8在python中就好比a 指向了8这个数据.
2. python中的每一次赋值都是将变量指向一个新的的数据(位置)
现在我们在回过头来看一看这两个python程序,
一:
a = 8
b = a
b = 6
首先语句a = 8说明变量a指向了8这个数据;
接着语句a = b说明变量b指向了a,也就等同与a与b一起指向了8这个数据;
最后语句b = 6,说明此时变量b的指向已经发生了改变, 但是变量a的指向并没有改变,变量b现在指向了6这个数据,变量a还是指向原来的数据8;
所以最后会打印出a = 8, b = 6.
二:
name = ["fujian", "beijing", "shanghai"]
name2 = name
name2[1] = "tianjing"
同样我们可以类似上一个程序那样分析:
首先第一条语句说明变量name指向了一个列表;
第二条语句说明变量name2与name指向了同一个列表;
第三条语句的分析非常重要:
请注意
name[1]其实也可以看成是一个‘变量’,只不过这个变量是属于name所指向的列表的一部分,它原先是指向“beijing”这个字符串,
现在经过第三条语句后,变量name[1]就改变了指向,指向了“tianjing"这个字符串了;这样也恰好改变了列表中的内容。
再加上最终name与name2还是指向最初的那个列表(只不过这个列表‘更新’了),
所以现在问题不就解决了!!!
如果您发现以上信息有问题,请及时留言,谢谢!
内容总结
以上是互联网集市为您收集整理的python中的赋值操作与C语言中的赋值操作中的巨大差别全部内容,希望文章能够帮你解决python中的赋值操作与C语言中的赋值操作中的巨大差别所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。