本系列文章译自Python之父 Guido van Rossum 的系列博客“The History of Python”。这个博客系列对我们理解Python及其演变很有帮助,经Guido同意,在这里翻译推荐给大家,希望大家喜欢,也请大家多多指教!
1
Python 对整数相除的处理是一个早期失误导致严重后果的例子。
如之前博文所说,在开发 Python 时,我抛弃了 ABC 对数字的处理方法,比如说,在 ABC 中,如果两个整数相除,会返回一个精确的有理数,而在 Python 中,则会返回一个整数。
根据我的经验,ABC 使用有理数来处理整数相除的方法并不好。一个典型的例子是,一些常见场景中的简单运算(比如计算个税),却会计算小数点后数千位,无疑会让程序运行得非常慢。这个问题解决起来并不难,用户只需要加上代表不精确的 0 就可以了——但这个方案是反直觉的,而且这个问题对初学者来说很难 debug 。
因此,在 Python 中,我借用了 C 语言中的数字模型。在 C 语言中,有不同精度的整型与浮点数,我选择其中的长整型(至少32位)作为 Python 中的整型,而用双精度浮点数作为 Python 中的浮点数。同时,我还为 Python 增加了任意