No entiendo por qué %sy %dhago y cómo funcionan.
python
string-formatting
karlzt
fuente
fuente

%sse usa con las configuraciones de motores de búsqueda. Chrome utiliza%spara reemplazar las palabras clave ingresadas en la barra de direcciones. Python usa%sde manera similar. Enprint('description: %s' % descrip)el%soperador será reemplazado por la cadena de texto almacenada en ladescripvariable. Los corchetes evitan un mensaje de error en Python 3.de python 3 doc
%des para entero decimal%ses 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,
%dse truncará a entero,%smantendrá el formato,%fse imprimirá como flotante y%gse usará para un número genéricoobviamente
generará una excepción; no puedes convertir una cadena en un número
fuente
%sse usara para un número en su lugar.%sse utiliza como marcador de posición para los valores de cadena que desea inyectar en una cadena con formato.%dse 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
%dy el%sformato de cadenas de "comandos" se utilizan para las cadenas de formato. El%des para números, y%ses para cadenas.Para un ejemplo:
y
Para pasar múltiples argumentos:
print("%s %s %s%d" % ("hi", "there", "user", 123456))volveráhi there user123456fuente
Estas son todas respuestas informativas, pero ninguna está llegando al núcleo de cuál es la diferencia entre
%sy%d.%sle dice al formateador que llame a lastr()función en el argumento y dado que estamos coaccionando a una cadena por definición,%sesencialmente se está ejecutandostr(arg).%dpor otro lado, está recurriendoint()al argumento antes de invocarstr(), comostr(int(arg)), Esto causaráintcoacción ystrcoerció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%ses 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-stringnotación, cuando deja el formateador fuera, el valor predeterminado esstr.Lo mismo es cierto con
string.format; el valor predeterminado esstr.fuente
%dy%sson 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
%sfunciona para String y%dfunciona para variables numéricas o decimales.si imprimes
variable_3se 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
%sy%d.printes 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-stringsque 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