No entiendo qué %s
y %d
hacen y cómo funcionan.¿Cuál es la diferencia entre% s y% d en el formato de cadenas de Python?
Respuesta
Se utilizan para formatear cadenas. %s
actúa como un marcador de posición para una cadena, mientras que %d
actúa como marcador de posición para un número. Sus valores asociados se pasan a través de una tupla usando el operador %
.
name = 'marcog'
number = 42
print '%s %d' % (name, number)
imprimirá marcog 42
. Tenga en cuenta que el nombre es una cadena (% s) y el número es un número entero (% d para el decimal).
Ver http://docs.python.org/library/stdtypes.html#string-formatting-operations para más detalles.
En Python 3 del ejemplo sería:
print('%s %d' % (name, number))
Son especificadores de formato. Se usan cuando desea incluir el valor de sus expresiones de Python en cadenas, con un formato específico aplicado.
Ver Dive into Python para una introducción relativamente detallada.
% s se utiliza como marcador de posición para los valores de cadena que desea insertar en una cadena formateada.
% d se usa como marcador de posición para valores numéricos o decimales.
Estos son marcadores de posición:
Por ejemplo: 'Hi %s I have %d donuts' %('Alice', 42)
Esta línea de código será sustituir% s con Alice (str) y% d con 42.
de salida: 'Hi Alice I have 42 donuts'
Esto se puede lograr con un "+" la mayor parte del tiempo. Para obtener una comprensión más profunda de su pregunta, también puede verificar {}/.format(). Aquí está un ejemplo: Python string formatting: % vs. .format
también ver aquí un video tutorial de Python Google @ 40' , tiene algunas explicaciones https://www.youtube.com/watch?v=tKTZoB2Vjuk
En caso de que le gustaría evitar% s o% d .. entonces
name = 'marcog'
number = 42
print ('my name is',name,'and my age is:', number)
salida:
my name is marcog and my name is 42
¿Qué tiene que ver esta respuesta con la pregunta? El interlocutor preguntaba sobre el uso de '% s' y'% d'. –
BTW, el código que muestra no es válido en Python 3.5.1: 'print' es una función en Python 3, no una declaración. –
He editado la publicación ... Véalo. En realidad, lo publiqué como una alternativa ... si alguien pudiera evitar el uso de% d o% s. Y gracias por la detección de errores, ..He editado el código. – Sujatha
%d
y %s
son marcadores de posición, que trabajar como una variable reemplazable Por ejemplo, si crea 2 variables
variable_one = "Stackoverflow"
variable_two = 45
puede asignar esas variables a una sentencia en una cadena mediante una tupla de las variables.
variable_3 = "I was searching for an answer in %s and found more than %d answers to my question"
Tenga en cuenta que %s
obras para cuerdas y %d
trabajo para las variables numéricas o decimales.
si imprime variable_3
se vería así
print(variable_3 % (variable_one, variable_two))
que estaba buscando una respuesta en StackOverflow y encontré más de 45 respuestas a mi pregunta.
Los "comandos" de formato de cadena %d
y %s
se utilizan para formatear cadenas. El %d
es para números, y %s
es para cadenas.
Para un ejemplo:
print("%s" % "hi")
y
print("%d" % 34.6)
¡Vota por el uso de un flotador! – LShi
de python 3 doc
%d
es para número entero decimal
%s
es para cadena genérico u objeto y en el caso de objeto , se convertirá en cadena
considere el siguiente código
name ='giacomo'
number = 4.3
print('%s %s %d %f %g' % (name, number, number, number, number))
la opción de venta a cabo será
Giacomo 4,3 4 4,300000 4,3
como se puede ver %d
truncará a entero, %s
se mantener el formateo, %f
se imprimirá como flotante y %g
se usará para número genérico
obviamente
print('%d' % (name))
generará una excepción; no puede convertir cadena al número
hablando de eso ...
python3.6 viene con f-strings
que facilita mucho el formateo!
ahora si la versión de Python es mayor que 3,6 puede formatear sus cuerdas con estos métodos disponibles:
name = "python"
print ("i code with %s" %name) # with help of older method
print ("i code with {0}".format(name)) # with help of format
print (f"i code with {name}") # with help of f-strings
- 1. ¿Cuál es la diferencia entre [\ s \ S] *? y. *?
- 2. En Perl, ¿cuál es la diferencia entre s/^ \ s + // y s/\ s + $ //?
- 3. ¿Cuál es la diferencia entre printf ("% i") y printf ("% d")
- 4. ¿Cuál es la diferencia entre el formato OMF y COFF?
- 5. ¿Cuál es la diferencia entre% d y% * d en el lenguaje c?
- 6. ¿Cuál es la diferencia entre dict() y {}?
- 7. ¿Cuál es la diferencia entre python activo y python?
- 8. ¿Cuál es la diferencia entre listas y tuplas en Python?
- 9. En Python, ¿cuál es la diferencia entre pasar y devolver
- 10. Diferencia entre: d [count] y d [count]
- 11. ¿Cuál es la diferencia entre conjuntos y listas en Python?
- 12. ¿Cuál es la diferencia entre {0} y ""?
- 13. ¿Cuál es la diferencia entre list y list [:] en python?
- 14. ¿Cuál es la diferencia entre {} y [] en python?
- 15. En Python, ¿cuál es la diferencia entre ".append()" y "+ = []"?
- 16. ¿Cuál es la diferencia entre llamar Double.valueOf (String s) y new Double (String s)?
- 17. Cuál es/son la (s) diferencia (s) entre MSBuild y TFSBuild
- 18. ¿Cuál es la diferencia entre el formato .ipa y .app en el uso de iphone?
- 19. ¿Cuál es la diferencia entre Double.valueOf (String s) y Double.ParseDouble (String s)?
- 20. ¿Cuál es la diferencia entre los códigos de operación normales y de formato corto en CIL?
- 21. ¿Cuál es la diferencia entre cadenas de C y cadenas de C++?
- 22. Twisted (Python): ¿cuál es la diferencia entre cooperate y coiterate?
- 23. ¿Cuál es la diferencia entre pytz y python-dateutil?
- 24. Python: ¿Cuál es la diferencia entre __builtin__ y __builtins__?
- 25. ¿Cuál es la diferencia entre django classonlymethod y python classmethod?
- 26. ¿Cuál es la diferencia entre el formato binario simple (.bin) y el ejecutable de Windows (.exe)?
- 27. ¿Cuál es la diferencia entre VBScript's y el operador &?
- 28. ¿Cuál es la diferencia entre las cadenas de markov y el modelo de markov oculto?
- 29. ¿Cuál es la diferencia entre setattr() y el objeto .__ setattr __()?
- 30. ¿Cuál es la diferencia entre un subproceso de trabajo y un subproceso de E/S?
¿Cómo sería la sintaxis para parecerse a python3? – binki
print ("% s% d"% (name, number)) – icarus74
gracias marcog ... – Daniel