2020 年1月1日是 Python2 的退休之日,官网也给出明确的告示:
于是乎各路大佬开始了花式调侃(以下纯属虚构)。比如这个使用pip命令卸载2019,安装2020.
当然,还有人舍不得丢掉python2,还打算维护至2.7.99
还有人干脆将python2 的截至日期设为2019年12月32日
还有,年底了,开始关心年终奖究竟有多少了。于是有人开发了一个money库,这是用来增加银行账户的数字么?
本文摘要(由AI生成):本文讨论了不同编程语言中数组索引的差异,如Fortran从1开始,而Python或C++从0开始。无论哪种语言,最终程序需转化为机器码执行。在机器层面,数组索引通过寄存器中的地址和偏移量处理。C++等基于0的索引语言在计算元素地址时效率略高,但此优势对现代计算机而言微不足道。C系列语言的设计思路更接近CPU操作。一些编程语言的索引从1开始。比如在Fortran中,声明数组integer :: array(5)会创建一个包含5个元素的数组。要访问第一个位置的元素,则索引为1,即array(1)。而在python或者C++语言,第一个元素的索引则为0。不管用什么语言编写程序,最终都要转化成CPU能实际执行的机器码。在机器级别,数组索引通过偏移量来处理:一个寄存器(CPU内部特殊的内存)数组地址(数组第一个元素的地址),而另一个寄存器则包含偏移量,即到目标元素的距离。第一个元素的偏移量和C++一样是0,使用Fortran这样的语言,必须先将基于1的索引转换成基于0的索引,再乘以每个元素的地址大小获得索引为i的元素地址: 元素i的地址 = 基本地址+((i-1)*每个元素地址大小)而C++这样基于0的索引的语言则可以稍微提高一下效率: 元素i的地址 = 基本地址+(i*每个元素地址大小)表面上看起来是节省了一些CPU运行时间,这对于现代计算机硬件设施来说微不足道。不过所有C系列语言(C,C++,C#)就是这样的的设计思路,也最接近CPU所做的事情。参考文献《C++ Without Fear,3rd》来源:数值分析与有限元编程