我知道复数是什么以及它们在数学上是如何工作的,但是仅通过在数字后加上j
来使python 知道是复杂的吗? / strong>
>>> j
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'j' is not defined
>>> 1*j
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'j' is not defined
>>> 1j
1j
>>> 1j**2
(-1+0j)
p
(严格意义上肯定)吗?我可以做这样的事情吗?
>>> ... some weird stuff here ...
>>> p
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'p' is not defined
>>> 1*p
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'p' is not defined
>>> -1p
1p
>>> 0p
1p
>>>
答案 0 :(得分:2)
这是内置于Python语法中的,就像小数点是一样,还是科学表示法中的e
(1e10
等)。 j
使数字文字虚构。
Python不允许您更改此设置。这并不意味着您不能-您可以修改语法-但随后该语言不再是Python。
Python中允许的最接近的近似值是通过实现一个运算符。
>>> class StrictlyPositive:
def __rmatmul__(self, number):
return abs(number)
>>> p = StrictlyPositive()
>>> -1@p
1
但是在进行此类操作时,必须注意操作符的优先级。为什么不直接使用内置的abs
?