关于Python的自增运算

2024-04-28 22:32
文章标签 python 自增 运算

本文主要是介绍关于Python的自增运算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

刚开始学 python,当想要自增运算的时候很自然的 a++,结果发现编译器是不认识 ++ 的,于是去网上搜了一下,结果发现一篇老外的问答很精彩,涉及到了 python 这个语言的设计原理


问题无外乎就是 python 没有自增运算符,自增操作是如何实现的


回答中有人介绍了关于自增操作,python 不使用 ++ 的哲学逻辑:编译解析上的简洁与语言本身的简洁,就不具体翻译了


后面还有老外回答并附带了一个例子非常的精彩,指出了 python 与 c 语言概念上的一些差异,语言描述的可能未必准确,直接上例子:

>>> b = 5  
>>> a = 5  
>>> id(a)  
162334512  
>>> id(b)  
162334512  
>>> a is b  
True  

可以看出, python 中,变量是以内容为基准而不是像 c 中以变量名为基准,所以只要你的数字内容是5,不管你起什么名字,这个变量的 ID 是相同的,同时也就说明了 python 中一个变量可以以多个名称访问


这样的设计逻辑决定了 python 中数字类型的值是不可变的,因为如果如上例,a 和 b 都是 5,当你改变了 a 时,b 也会跟着变,这当然不是我们希望的


因此,正确的自增操作应该 a = a + 1 或者 a += 1,当此 a 自增后,通过 id() 观察可知,id 值变化了,即 a 已经是新值的名称。

原文地址:点击打开链接

这篇关于关于Python的自增运算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944425

相关文章

python之unittest框架入门

单元测试框架         unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。今天笔者就总结下如何使用unittest单元测试框架来进行WEB自动化测试。 文档资料 https://docs.python.org/2/library/unittest

一周学会Django5 Python Web开发 - Django5内置Admin系统初体验

锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计54条视频,包括:2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django

python文件行结束符问题

由于平台不同行结束符不同,Python中解决了这个问题, os 模块属性 描述 linesep 用于在文件中分隔行的字符串 sep 用来分隔文件路径名的字符串 pathsep 用于分隔文件路径的字符串 curdir 当前工作目录的字符串名称 pardir 当前工作目录的)父目录字符串名称 不管你使用的是什么平台, 只要你导入了 os 模块, 这些变量自动会被设置为正确的值, ***

python之false和None

1、有一个特殊的类型,被称作 Null 对象或者 NoneType,它只有一个值,那就是 None。它不支持任何运算也没有任何内建方法。None和任何其他的数据类型比较永远返回False。     False (布尔类型)所有的值为零的数:    0 (整型) (浮点型)    0L (长整型)              0.0+0.0j (复数)     "" (空字符串)    [] (空

python析构

__del__,析构函数不能手动调用,而是每个对象引用使用完之后系统自动回收垃圾,且按照字典顺序(A-Za-z)来回收。class NewClass(object):num_count = 0 # 所有的实例都共享此变量,即不单独为每个实例分配def __init__(self,name):self.name = nameNewClass.num_count += 1def __del__(se

python思考

任何类或者类型的实例都是这种类型的对象。比如0是 integer 类型的. 而实例instance是类ClassName对象,可以使用type函数来查看对象是什么类型 class ClassName(object):'docstring for ClassName'passinstance1=ClassName()print(type(instance1))print(type(0))p

python之Class属性定义和访问

1、python中类定义: 类的声明和函数的声明形式是差不多的,开始都是关键字+自定义名称 定义实例变量:可以在定义方法的时候直接定义,也可以使用实例来定义 可以使用dir(ClassName) ClassName.__dict__来查看有哪些类属性 class ClassName:'the discription of this class'#这个是类文档说明字符串foo='

python中的可变与不可变

不可变:字符串、数值、元祖。一旦创建则其中的内容不可更改 可变:字典、列表

【python量化交易】qteasy使用教程06——创建自定义因子选股交易策略

创建自定义因子选股策略 使用`qteasy`创建自定义因子选股交易策略开始前的准备工作本节的目标Alpha选股策略的选股思想计算选股指标用`FactorSorter`定义Alpha选股策略交易策略的回测结果用`GeneralStg`定义一个Alpha选股策略回测结果:本节回顾 使用qteasy创建自定义因子选股交易策略 qteasy是一个完全本地化部署和运行的量化交易分析工具包

linux下python升级版本

服务器在配置环境时选择了python2版本,很久没有使用,更新了很多版本,如今想要学习,然后就升级了版本,这里是升级到了python3.8。 python 原版本是 2.7.5 1、下载 当前2020年09月15日17:03:29,最新版本是3.8.5。 wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz 这里