2017-02-10 19 views
1

Можно ли форматировать комплексное число таким образом, чтобы реальная часть не отображалась, если она равна нулю?Python Complex Number Форматирование нулевой мнимой части

настоящее время я использую '{:.3g}'.format(x), который делает большую работу подавления ненужных нулей, но я все еще получаю числа вида 0+0.5j, который должен быть брошен в 0.5j.

Спасибо!

ответ

1

str и repr похоже на работу:

>>> str(0.5j) 
'0.5j' 

>>> repr(0.5j) 
'0.5j' 
+0

Они работают как шарм, но не могли бы вы дать мне подсказку, как показано только три цифры после запятой, например? – Faser

+0

@Faser Хм, я не очень разбираюсь в форматировании сложных чисел, я только придумал взломать, как зачеркивание '0+' прочь с помощью ''{: .3g}'. Format (x) .lstrip ('0+ '* (x.real == 0)) 'или округление числа типа' str (complex (round (x.real, 3), round (x.imag, 3))). –