为什么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实现读取文件最后n行的方法
Feb 23 Python
python类的方法属性与方法属性的动态绑定代码详解
Dec 27 Python
Python编程求质数实例代码
Jan 31 Python
Python get获取页面cookie代码实例
Sep 12 Python
Python3最长回文子串算法示例
Mar 04 Python
使用Python实现跳帧截取视频帧
May 31 Python
Python使用线程来接收串口数据的示例
Jul 02 Python
Python使用Pandas对csv文件进行数据处理的方法
Aug 01 Python
python 画出使用分类器得到的决策边界
Aug 21 Python
详解python 降级到3.6终极解决方案
Feb 06 Python
python 爬虫网页登陆的简单实现
Nov 30 Python
Python Pandas数据分析之iloc和loc的用法详解
Nov 11 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
上海永华YH-R296(华普R-96)12波段立体声收音机的分析和打理
2021/03/02 无线电
php输出表格的实现代码(修正版)
2010/12/29 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
使用jquery实现的循环连续可停顿滚动实例
2016/11/23 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
Django中使用Celery的方法示例
2018/11/29 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
利用python计算时间差(返回天数)
2019/09/07 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
python中元组的用法整理
2020/06/15 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
给客户的道歉信
2014/01/13 职场文书
单位提档介绍信
2014/01/17 职场文书
普通简短的个人自我评价
2014/02/15 职场文书
微信营销策划方案
2014/02/24 职场文书