旗木稻草 发表于 2021-8-3 16:29:10

【新手求助】Python复数问题

复数的形式是a+bi的形式
为什么给x赋值一个复数会报无效语法?
>>> x = 3 + 8i
SyntaxError: invalid syntax
但是输入:
>>> x = 4 + 8j
就没有报错?
难道是Python复数的虚部只能是 “j”?

tang- 发表于 2021-8-3 16:29:11

Python 语言中有关复数的概念:

1、虚数不能单独存在,它们总是和一个值为 0.0 的实数部分一起构成一个复数

2、复数由实数部分和虚数部分构成

3、表示复数的语法:real+imagej

4、实数部分和虚数部分都是浮点数

5、虚数部分必须有后缀j或Jaa=123-12j

代码小白liu 发表于 2021-8-3 16:39:10

x = 3 + 8i是啥这个涉及到数学问题了吧

akai735 发表于 2021-8-3 20:51:18

如你所料,这似乎是因为python遵循电气工程惯例。这是python Bug跟踪器lssue10562的交换:
BoštjanMejak:在Python中,字母“ j”表示虚数单位。 如果我们在这方面遵循数学并以“ i”表示虚数单位,那将是很好的。

Michael Foord:我们遵循使用j的工程。

(我本来打算以wontfix结束它,但是Antoine尤其热衷于Mark处理这个问题...)

马克·迪金森(Mark Dickinson):补充一下我的想法:迈克尔(Michael)指出,“ j”代表-1(不是平方根)具有在工程学(特别是电气工程)和物理学中的使用历史。 就我个人而言,在这里我更喜欢“ i”而不是“ j”,但是现在更改它会导致(IMO)无故损坏。 看来这确实不是一个大问题,值得大惊小怪。

...

很久以后:

Guido van Rossum:这不会解决。 一方面,字母“ i”或大写字母“ I”看起来太像数字。 通过语言解析器(在源代码中)或通过内置函数(int,float,complex)解析数字的方式不应以任何方式本地化或配置。 这就要求日渐失望。 如果要使用“ i”而不是“ j”解析复数,则已经有很多可用的解决方案。

99313895 发表于 2021-8-3 22:02:27

i好像是高中数学用的,到了大学我们用的都是j为虚单位,并且Python用的也是j
页: [1]
查看完整版本: 【新手求助】Python复数问题