为什么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获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
Python如何为图片添加水印
Nov 25 Python
Python实现复杂对象转JSON的方法示例
Jun 22 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
Oct 29 Python
解决django后台样式丢失,css资源加载失败的问题
Jun 11 Python
Python Tkinter 简单登录界面的实现
Jun 14 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
python logging模块书写日志以及日志分割详解
Jul 22 Python
python命名空间(namespace)简单介绍
Aug 10 Python
Python爬虫新手入门之初学lxml库
Dec 20 Python
Python selenium绕过webdriver监测执行javascript
Apr 12 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
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
php intval函数用法总结
2019/04/14 PHP
PHP获取远程http或ftp文件的md5值的方法
2019/04/15 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
jquery 无限级下拉菜单的简单实现代码
2014/02/21 Javascript
javascript文本框内输入文字倒计数的方法
2015/02/24 Javascript
JS实现简单易用的手机端浮动窗口显示效果
2016/09/07 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
jQuery插件Echarts实现的渐变色柱状图
2017/03/23 jQuery
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
apicloud拉起小程序并传递参数的方法示例
2018/11/21 Javascript
全面了解JavaScript的作用域链
2019/04/03 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
javascript实现电商放大镜效果
2020/11/23 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python tempfile模块学习笔记(临时文件)
2014/05/25 Python
Python的另外几种语言实现
2015/01/29 Python
python解决网站的反爬虫策略总结
2016/10/26 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
会计电算化学生个人的自我评价
2014/02/08 职场文书
置业顾问岗位职责
2014/03/02 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android