Formatage des nombres complexes
Pour un projet dans une de mes classes que nous avons à la sortie des nombres jusqu'à cinq décimales.Il est possible que la sortie sera un nombre complexe et je n'arrive pas à comprendre comment la sortie d'un nombre complexe avec cinq décimales. Pour la flotte, je sais c'est juste:
print "%0.5f"%variable_name
Est-il quelque chose de similaire pour les nombres complexes?
source d'informationauteur island_hopper
Vous devez vous connecter pour publier un commentaire.
Pour ce genre de questions, le La documentation Python devrait être votre premier arrêt. Plus précisément, jetez un oeil à la section sur le mise en forme de chaîne. Il répertorie tous les format de la chaîne de codes; il n'existe pas de nombres complexes.
Ce que vous pouvez faire est de formater la réelle et la partie imaginaire du nombre séparément, à l'aide de
x.real
etx.imag
et l'imprimer ena + bi
forme.Vous pourriez le faire comme il est indiqué ci-dessous à l'aide de la
str.format()
méthode:Pour le faire gérer à la fois positifs et négatifs imaginaire portions correctement, vous avez besoin d'une (encore plus) compliqué opération de mise en forme:
Mise À Jour - Moyen Plus Facile
Bien que vous ne peut pas utilisation
f
comme une présentation type pour les nombres complexes à l'aide de la chaîne de mise en forme de l'opérateur%
:De sortie:
Vous peut cependant l'utiliser avec des nombres complexes via la
str.format()
méthode. Ce n'est pas explicitement documentées, mais il est implicite par le Spécification Du Format Mini-Langue documentation qui dit seulement:. . .de sorte qu'il est facile de négliger.
En termes concrets, les ouvrages suivants, en Python 2.7.14 et 3.4.6:
De sortie:
Cela ne vous donnent pas le contrôle le code dans ma réponse originale à cette question, mais il est certainement beaucoup plus concis (et gère à la fois positif et négatif de la partie imaginaire automatiquement).
Ni Chaîne D'Opérations De Mise En Forme - à-dire le modulo (
%
) opérateur) -ni la nouvelle
str.format()
Format De La Syntaxe De La Chaîne De soutien de types complexes.Toutefois, il est possible d'appeler la
__format__
méthode de tous les construit dans les types numériques directement.Voici un exemple:
Notez que cela fonctionne bien avec un négatif imaginaire des pièces trop.
Que de la version 2.6 de Python, vous pouvez définir la manière dont les objets de vos propres classes de répondre aux chaînes de format. Ainsi, vous pouvez définir une sous-classe de
complex
qui peuvent être formatés. Voici un exemple:Des objets de cette classe se comportent exactement comme
complex
les nombres, sauf qu'ils prennent plus d'espace et de fonctionner plus lentement; lecteur méfiez-vous.