我知道这是一个电气工程会议,但我仍然想知道为什么它被选择为Python。我不知道其他具有复数文字的编程语言,所以我没有什么可与之比较的,但是有谁知道使用i吗?
发布于 2014-07-17 20:11:40
正如您所猜测的,它似乎是因为Python遵循电气工程惯例。这里是Python跟踪器Issue10562的一个交换
Boštjan Mejak:在Python中,字母'j‘表示假想单位。如果我们在这方面跟随数学,让想象的单位用'i‘来表示,那就太好了。 Michael :我们遵循使用j的工程方法。 (我本打算以仙人掌的名义结束这件事,但安托万特别希望马克处理这个问题.) Mark :只是想补充一下我自己的想法:“J”代表-1的平方根(不是-1的平方根),正如Michael指出的那样,它在工程(特别是电气工程)和物理学中的使用历史。就我个人而言,我宁愿在这里使用“我”而不是“j”,但现在改变它将导致(国际海事组织)无端的破坏。这似乎并不是一个值得大惊小怪的大问题。
..。
很久以后:
Guido van Rossum:这不会被修复。首先,字母'i‘或大写'I’看上去太像数字了。无论是由语言解析器(在源代码中)还是由内置函数(int、float、complex)解析数字的方式,都不应该是可本地化的或以任何方式配置的;这意味着今后会有巨大的失望。如果您想使用'i‘而不是'j’来解析复数,那么您已经有了很多可用的解决方案。
发布于 2014-07-17 20:09:23
Python采用了电气工程师使用的惯例。在该字段中,i用于表示当前,并使用j作为-1的平方根。
在Python3.3中,有一个错误将其更改为i。根据吉多范罗苏姆的推理,它被解析为"WONTFIX“。
这件事不能解决。首先,字母'i‘或大写'I’看上去太像数字了。无论是由语言解析器(在源代码中)还是由内置函数(int、float、complex)解析数字的方式,都不应该是可本地化的或以任何方式配置的;这意味着今后会有巨大的失望。如果您想使用'i‘而不是'j’来解析复数,那么您已经有了很多可用的解决方案。
发布于 2016-05-30 13:53:22
要回答“有谁知道其他使用i的复数文字的编程语言吗?”
是的,C++从C++14标准开始。但是,您必须使用正确的命名空间:
#include <complex>
using namespace std::complex_literals;
std::complex<double> z = 2 + 3i;https://stackoverflow.com/questions/24812444
复制相似问题