Format des numéros de chaînes de caractères en Python
J'ai besoin de savoir comment mettre en forme les nombres comme des chaînes de caractères. Mon code est ici:
return str(hours)+":"+str(minutes)+":"+str(seconds)+" "+ampm
Les heures et les minutes sont des entiers, et des secondes est un float. le str() va convertir l'ensemble de ces chiffres à la dixième (0,1) de la place. Ainsi, au lieu de ma chaîne de la sortie "5:30:59.07 h", il affiche quelque chose comme "5.0:30.0:59.1 pm".
Ligne du bas, ce bibliothèque /fonction dois-je faire cela pour moi?
Vous devez vous connecter pour publier un commentaire.
De commencer avec Python 3.6, la mise en forme en Python peut être fait en utilisant formaté littéraux de chaîne ou f-chaînes:
ou la
str.format
fonction de départ avec 2.7:ou la mise en forme de chaîne
%
de l'opérateur, même pour les anciennes versions de Python, mais voir la note dans les docs:Et pour votre cas spécifique de la mise en forme du temps, il est
temps.strftime
:De départ en Python 2.6, il existe une alternative: la
str.format()
méthode. Voici quelques exemples d'utiliser le format de la chaîne de l'opérateur (%
):Ici sont l'équivalent des extraits, mais en utilisant
str.format()
:Comme Python 2.6+, toutes Python 3 versions (jusqu'à présent) comprendre comment faire les deux. J'ai sans vergogne déchiré ce truc tout droit sorti de mon hardcore Python intro livre et les diapositives pour l'Intro+Intermédiaire Python cours que je propose de temps en temps.
:-)
Août 2018 mise à JOUR: bien sûr, maintenant que nous avons le f-chaîne de caractéristique en 3.6, nous avons besoin de l'équivalent des exemples de que, oui une autre alternative:
Python 2.6+
Il est possible d'utiliser le
format()
fonction, donc dans votre cas vous pouvez utiliser:Il y a de multiples façons d'utiliser cette fonction, donc pour plus d'informations, vous pouvez consulter la la documentation.
Python 3.6+
f-cordes est une nouvelle fonctionnalité qui a été ajoutée à la langue en Python 3.6. Ceci facilite la mise en forme des chaînes notoirement:
Vous pouvez utiliser C le style de mise en forme de chaîne:
Voir ici, en particulier: https://web.archive.org/web/20120415173443/http://diveintopython3.ep.io/strings.html
Vous pouvez utiliser la suite pour atteindre les objectifs souhaités de la fonctionnalité
str() en python sur un nombre entier pas imprimer toutes les décimales.
Si vous avez un flotteur que vous voulez ignorer la partie décimale, alors vous pouvez utiliser str(int(floatValue)).
Peut-être le code suivant va montrer:
Si vous avez une valeur qui inclut une décimale, mais la valeur décimale est négligeable (c'est à dire: 100.0) et essayez d'int qui, vous obtiendrez une erreur. Il semble idiot, mais en l'appelant flotteur fixe pour la première fois cette.
str(int(float([variable])))