为什么Python中没有"a++"这种写法


Posted in Python onNovember 27, 2018

一开始学习 Python 的时候习惯性的使用 C 中的 a++ 这种写法,发现会报 SyntaxError: invalid syntax 错误,为什么 Python 没有自增运算符的这种写法呢?

我们可以看一下 Python 下:

>>>a = 2
>>>b = 2
>>>id(a) #id() 函数用于获取对象的内存地址。
140732976575344
>>>id(b)
140732976575344
>>>

再来看看 C 语言中:

#include<stdio.h>
int main()
{
 int a = 1;
 int b = 1;
 printf("%d\n",&a);
 printf("%d\n",&b);
 return 0;
}

输出:

这里可以看出 Python 在变量的存储上与 C 语言的不同,在 C 语言中,值的存储以变量名来区分,一个变量具有单独的地址空间;而 Python 中则不一样,只要值是相同的,不管你的变量名是什么,它们的地址都是相同的,也就是说, Python 允许一个值被多个变量名称绑定。

这里说明一下,在脚本式编程环境中是这样,但是在交互式编程环境下,Python 为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间,编译器会有一个小整数池的概念,小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收,也就是说,变量在这个范围内是会按照前面所说的,共用内存地址,超过这个值则使用单独的内存地址。 如:

>>>a=1000
>>>b=1000
>>>id(a);id(b)
266662366224
266617350384
>>>

总结

以上所述是小编给大家介绍的为什么Python中没有"a++"这种写法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
python通过smpt发送邮件的方法
Apr 30 Python
Python中使用OpenCV库来进行简单的气象学遥感影像计算
Feb 19 Python
Python2.7读取PDF文件的方法示例
Jul 13 Python
python负载均衡的简单实现方法
Feb 04 Python
Python基于FTP模块实现ftp文件上传操作示例
Apr 23 Python
django进阶之cookie和session的使用示例
Aug 17 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 Python
Python实现仿射密码的思路详解
Apr 23 Python
keras实现图像预处理并生成一个generator的案例
Jun 17 Python
基于Python pyecharts实现多种图例代码解析
Aug 10 Python
Python中的特殊方法以及应用详解
Sep 20 Python
浅析Python的命名空间与作用域
Nov 25 Python
django session完成状态保持的方法
Nov 27 #Python
Python3实现腾讯云OCR识别
Nov 27 #Python
python利用百度AI实现文字识别功能
Nov 27 #Python
python如何实现一个刷网页小程序
Nov 27 #Python
python实现简单的文字识别
Nov 27 #Python
python中类的属性和方法介绍
Nov 27 #Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 #Python
You might like
php 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
javascript call方法使用说明
2010/01/11 Javascript
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
Javascript字符串拼接小技巧(推荐)
2016/06/02 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
详解vue.js之props传递参数
2017/12/12 Javascript
Vuex中mutations与actions的区别详解
2018/03/01 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
Python标准库os.path包、glob包使用实例
2014/11/25 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
python字典一键多值实例代码分享
2019/06/14 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
Python 存取npy格式数据实例
2020/07/01 Python
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
资金主管岗位职责范本
2014/03/04 职场文书
教导主任竞聘演讲稿
2014/05/16 职场文书
大学生团员个人总结
2015/02/14 职场文书
免职通知
2015/04/23 职场文书
2015年办公室文秘工作总结
2015/04/30 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
Pandas搭配lambda组合使用详解
2022/01/22 Python
在python中读取和写入CSV文件详情
2022/06/28 Python