Je ne comprends pas quoi %s
et %d
faire et comment ils fonctionnent.
python
string-formatting
Karlzt
la source
la source
%s
est utilisé avec les configurations des moteurs de recherche. Chrome utilise%s
pour remplacer les mots clés saisis dans la barre d'adresse. Python utilise%s
de la même manière. Dansprint('description: %s' % descrip)
l'%s
opérateur sera remplacé par la chaîne de texte stockée dans ladescrip
variable. Les accolades rondes empêchent un message d'erreur dans Python 3.à partir de python 3 doc
%d
est pour un entier décimal%s
est pour une chaîne ou un objet générique et en cas d'objet, il sera converti en chaîneConsidérez le code suivant
la sortie sera
comme vous pouvez le voir, il
%d
sera tronqué en entier,%s
maintiendra le formatage,%f
sera imprimé en flottant et%g
est utilisé pour le nombre génériqueévidemment
générera une exception; vous ne pouvez pas convertir une chaîne en nombre
la source
%s
était utilisé pour un nombre à la place.%s
est utilisé comme espace réservé pour les valeurs de chaîne que vous souhaitez injecter dans une chaîne formatée.%d
est utilisé comme espace réservé pour les valeurs numériques ou décimales.Par exemple (pour python 3)
Sortirait
la source
Ce sont des espaces réservés:
Par exemple:
'Hi %s I have %d donuts' %('Alice', 42)
Cette ligne de code remplacera% s par Alice (str) et% d par 42.
Production:
'Hi Alice I have 42 donuts'
Ceci pourrait être réalisé avec un "+" la plupart du temps. Pour mieux comprendre votre question, vous pouvez également vérifier {} / .format (). Voici un exemple: Formatage de chaîne Python:% vs .format
voir aussi ici une vidéo tutoriel google python @ 40 ', elle a quelques explications https://www.youtube.com/watch?v=tKTZoB2Vjuk
la source
Les "commandes" de mise en forme des chaînes
%d
et%s
sont utilisées pour formater les chaînes. Le%d
est pour les nombres, et%s
est pour les chaînes.À titre d'exemple:
et
Pour transmettre plusieurs arguments:
print("%s %s %s%d" % ("hi", "there", "user", 123456))
reviendrahi there user123456
la source
Ce sont toutes des réponses informatives, mais aucune ne permet de comprendre la différence entre
%s
et%d
.%s
indique au formateur d'appeler lastr()
fonction sur l'argument et puisque nous contraignons à une chaîne par définition, il%s
est essentiellement performantstr(arg)
.%d
d'autre part, fait appelint()
à l'argument avant d'appelerstr()
, commestr(int(arg))
, Cela provoquera laint
coercition ainsi que lastr
coercition.Par exemple, je peux convertir une valeur hexadécimale en décimal,
ou tronquer un flotteur.
Mais l'opération lèvera une exception si l'argument n'est pas un nombre.
Donc, si l'intention est juste d'appeler
str(arg)
, alors%s
suffit, mais si vous avez besoin d'un formatage supplémentaire (comme le formatage des décimales flottantes) ou d'une autre contrainte, les autres symboles de format sont nécessaires.Avec la
f-string
notation, lorsque vous laissez le formateur de côté, la valeur par défaut eststr
.La même chose est vraie avec
string.format
; la valeur par défaut eststr
.la source
%d
et%s
sont des espaces réservés, ils fonctionnent comme une variable remplaçable. Par exemple, si vous créez 2 variablesvous pouvez affecter ces variables à une phrase dans une chaîne en utilisant un tuple des variables.
Notez que cela
%s
fonctionne pour String et%d
fonctionne pour les variables numériques ou décimales.si vous imprimez
variable_3
cela ressemblerait à ceciJe cherchais une réponse dans StackOverflow et j'ai trouvé plus de 45 réponses à ma question.
la source
Ce sont des spécificateurs de format. Ils sont utilisés lorsque vous souhaitez inclure la valeur de vos expressions Python dans des chaînes, avec un format spécifique appliqué.
Voir Plongez dans Python pour une introduction relativement détaillée.
la source
Selon les dernières normes, c'est ainsi que cela doit être fait.
Vérifiez les documents et l' exemple de programme python3.6
la source
Si vous souhaitez éviter% s ou% d alors ..
Production:
la source
%s
et%d
.print
est une fonction en Python 3, pas une instruction.% s est utilisé pour contenir de l'espace pour la chaîne% d est utilisé pour contenir de l'espace pour le nombre
Sortie programme
cette vidéo explique en profondeur cette astuce https://www.youtube.com/watch?v=4zN5YsuiqMA
la source
en parlant de cela ...
python3.6 est livré avec
f-strings
ce qui rend les choses beaucoup plus faciles dans le formatage!maintenant, si votre version de python est supérieure à 3,6, vous pouvez formater vos chaînes avec ces méthodes disponibles:
la source