No entiendo por qué %s
y %d
hago y cómo funcionan.
python
string-formatting
karlzt
fuente
fuente
%s
se usa con las configuraciones de motores de búsqueda. Chrome utiliza%s
para reemplazar las palabras clave ingresadas en la barra de direcciones. Python usa%s
de manera similar. Enprint('description: %s' % descrip)
el%s
operador será reemplazado por la cadena de texto almacenada en ladescrip
variable. Los corchetes evitan un mensaje de error en Python 3.de python 3 doc
%d
es para entero decimal%s
es para cadena u objeto genérico y en caso de objeto, se convertirá en cadenaConsidere el siguiente código
la salida será
como puede ver,
%d
se truncará a entero,%s
mantendrá el formato,%f
se imprimirá como flotante y%g
se usará para un número genéricoobviamente
generará una excepción; no puedes convertir una cadena en un número
fuente
%s
se usara para un número en su lugar.%s
se utiliza como marcador de posición para los valores de cadena que desea inyectar en una cadena con formato.%d
se utiliza como marcador de posición para valores numéricos o decimales.Por ejemplo (para python 3)
Saldría
fuente
Estos son marcadores de posición:
Por ejemplo:
'Hi %s I have %d donuts' %('Alice', 42)
Esta línea de código sustituirá% s con Alice (str) y% d con 42.
Salida:
'Hi Alice I have 42 donuts'
Esto podría lograrse con un "+" la mayor parte del tiempo. Para obtener una comprensión más profunda de su pregunta, también puede marcar {} / .format (). Aquí hay un ejemplo: Formato de cadena de Python:% vs. .format
También vea aquí un video tutorial de Google Python @ 40 ', tiene algunas explicaciones https://www.youtube.com/watch?v=tKTZoB2Vjuk
fuente
El
%d
y el%s
formato de cadenas de "comandos" se utilizan para las cadenas de formato. El%d
es para números, y%s
es para cadenas.Para un ejemplo:
y
Para pasar múltiples argumentos:
print("%s %s %s%d" % ("hi", "there", "user", 123456))
volveráhi there user123456
fuente
Estas son todas respuestas informativas, pero ninguna está llegando al núcleo de cuál es la diferencia entre
%s
y%d
.%s
le dice al formateador que llame a lastr()
función en el argumento y dado que estamos coaccionando a una cadena por definición,%s
esencialmente se está ejecutandostr(arg)
.%d
por otro lado, está recurriendoint()
al argumento antes de invocarstr()
, comostr(int(arg))
, Esto causaráint
coacción ystr
coerción.Por ejemplo, puedo convertir un valor hexadecimal a decimal,
o truncar un flotador.
Pero la operación generará una excepción si el argumento no es un número.
Entonces, si la intención es solo llamar
str(arg)
, entonces%s
es suficiente, pero si necesita un formato adicional (como formatear lugares decimales flotantes) u otra coerción, entonces se necesitan los otros símbolos de formato.Con la
f-string
notación, cuando deja el formateador fuera, el valor predeterminado esstr
.Lo mismo es cierto con
string.format
; el valor predeterminado esstr
.fuente
%d
y%s
son marcadores de posición, funcionan como una variable reemplazable. Por ejemplo, si crea 2 variablespuede asignar esas variables a una oración en una cadena usando una tupla de las variables.
Tenga en cuenta que
%s
funciona para String y%d
funciona para variables numéricas o decimales.si imprimes
variable_3
se vería asíEstaba buscando una respuesta en StackOverflow y encontré más de 45 respuestas a mi pregunta.
fuente
Son especificadores de formato. Se usan cuando desea incluir el valor de sus expresiones de Python en cadenas, con un formato específico impuesto.
Ver Sumérgete en Python para una introducción relativamente detallada.
fuente
Según los últimos estándares, así es como debe hacerse.
Verifique los documentos de python3.6 y el programa de muestra
fuente
En caso de que desee evitar% so% d entonces ...
Salida:
fuente
%s
y%d
.print
es una función en Python 3, no una declaración.% s se usa para mantener espacio para la cadena% d se usa para mantener espacio para el número
Salida del programa
este video profundiza sobre ese consejo https://www.youtube.com/watch?v=4zN5YsuiqMA
fuente
hablando de eso ...
¡viene con python3.6
f-strings
que hace que las cosas sean mucho más fáciles de formatear!ahora, si su versión de Python es superior a 3.6, puede formatear sus cadenas con estos métodos disponibles:
fuente