Я уже искал, но я понятия не имею, как эти e
и j
называются и, следовательно, не найдены полезной информацией. Я ищу номера с символами для спецификации или как операторы.Как создать нечто вроде экспоненты 'e' или мнимого 'j'
Как это exponetial e
notaion:
1e3 = 1 * 10^(3) = 1000
xen = x * 10^(n) # where x and n are numbers
или мнимые числа с j
:
1 + 3j
Выгода Я надеюсь на это, чтобы иметь возможность написать Ppm(2)
(экземпляр Ppm
класса) удобно как 2ppm
(где «ppm» представляет собой «части на миллион» частоты в ЯМР). Это невозможно сделать с помощью экспоненциальной нотации 2e-6
, поскольку ppm ссылается на частоту. Следовательно, его следует отличать от обычных чисел.
Я не думаю, что это возможно без изменения исходного кода Python. Цифрный буквенный синтаксис, такой как '3j' и' 1e3', эффективно кодируется в синтаксический анализатор. Расширение анализатора, чтобы распознать '2ppm' как литерал, также недоступно обычным пользователям. – Kevin
Они не называются «; они являются частью синтаксиса для чисел с плавающей точкой и сложными числами. Невозможно распространить это на пользовательские классы. Python не Ruby (хотя я не специалист по Ruby, поэтому не могу сказать, можно ли там там). –
'e' - [математическая константа] (https://docs.python.org/2/library/math.html#constants); мнимые числа являются [частью синтаксиса букв числа] (https://docs.python.org/2/reference/lexical_analysis.html#imaginary-literals). Ни один из них не называется. Вы не можете изменить грамматику Python (по крайней мере, не во время выполнения, и вам придется скомпилировать свой собственный двоичный код Python, если вы попытаетесь изменить грамматику). –