为什么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中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
Python中循环后使用list.append()数据被覆盖问题的解决
Jul 01 Python
Python延时操作实现方法示例
Aug 14 Python
Python检查和同步本地时间(北京时间)的实现方法
Dec 03 Python
python爬虫获取百度首页内容教学
Dec 23 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
django认证系统 Authentication使用详解
Jul 22 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
Feb 17 Python
如何基于线程池提升request模块效率
Apr 18 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
用Python爬取某乎手机APP数据
Jun 15 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的分页功能
2007/03/21 PHP
PHP 程序员也要学会使用“异常”
2009/06/16 PHP
php 解压rar文件及zip文件的方法
2014/05/05 PHP
php不使用copy()函数复制文件的方法
2015/03/13 PHP
ThinkPHP安装和设置
2015/07/27 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
Python中Continue语句的用法的举例详解
2015/05/14 Python
Python Unittest根据不同测试环境跳过用例的方法
2018/12/16 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
英文请假条
2014/04/11 职场文书
教师评语大全
2014/04/28 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
营销总监岗位职责
2014/09/16 职场文书
运动会表扬稿
2015/01/16 职场文书
2015年档案室工作总结
2015/05/23 职场文书
获奖感言怎么写
2015/07/31 职场文书
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers