% s es un especificador de parámetro utilizado para dar formato a una cadena. Toma prestada la sintaxis del lenguaje C. En resumen, le permite agregar valor a una cadena.
El valor puede ser una cadena o cualquier objeto que se pueda convertir en una cadena, como un número, una lista, etc.
todos los valores de cadena
Considere el siguiente ejemplo.
name = input("Please insert your name: ") song = input("What is your favorite song? " ) print("Hello %s! Would you like to listen to %s?" %(name, song))
En el ejemplo anterior, obtenemos el nombre del usuario y su canción favorita y mostramos un mensaje usando estos valores.
Además, ponemos % s como sustitutos de aquellos lugares donde desea variables.
Las tuplas que contienen valores siguen la cadena de formato, es decir. % (nombre, canción). Asegúrese de insertar los valores en el mismo orden en que desea que aparezcan. Bajo estas circunstancias, nombre aparecerá primero, luego canción.
Un ejemplo del ejemplo anterior se da a continuación.
Please insert your name: ashton What is your favorite song? Perfect Hello ashton! Would you like to listen to Perfect?
Como puede ver, esto funciona como se esperaba.
valor unitario
si solo tuviéramos uno % s, entonces podemos escribir un valor sin una tupla. Veamos.
name = input("Please insert your name: ") print("Hello %s!" % name)
Salida
Please insert your name: Agar Hello Agar!
objeto con representación de cadena
Como se mencionó anteriormente, un valor puede ser cualquier objeto que se pueda convertir en una cadena. Tomemos un ejemplo.
name = "Smith" score = [70, 80, 90, 100] print("The score of %s in the last four matches: %s" % (name, score))
Salida
The score of Smith in the last four matches: [70, 80, 90, 100]
Como puede ver, usamos % s especificador de parámetros. Automáticamente convertirá la lista en una cadena.
Tomemos el mismo ejemplo y apliquémoslo con la ayuda del operador de concatenación.
name = "Smith" score = [70, 80, 90, 100] print("The score of " + name + " in the last four matches " + str(score))
Salida
The score of Smith in the last four matches [70, 80, 90, 100]
Aquí, a diferencia de% s, convertimos explícitamente la lista en una cadena y la usamos + Queremos agregar valor en todas partes.
tipo de error
Además, el número de especificadores de parámetros debe ser el mismo que el número de valores en la tupla. Si no, recibirá un mensaje de error. Veamos.
name = input("Please insert your name: ") song = input("What is your favorite song? " ) print("Hello %s! Would you like to listen to %s?" %(name))
Salida
¿Qué significa% s en Python?
Como puede ver en la salida de arriba, el programa lanza un tipo de error.
llave de tarjeta
En lugar de memorizar el orden en el que desea insertar los valores, puede introducir un llave de tarjeta ellos llegan % sConsidere el siguiente ejemplo para entender este concepto.
name = "Ashton Agar" age = 20 print("My name is %(name)s and my age is %(age)s." %{"age":age, "name":name})
Salida
My name is Ashton Agar and my age is 20.
En el ejemplo anterior, pasamos un diccionario que contiene pares (clave, valor) en lugar de tuplas. % y sque será reemplazado por su valor más adelante. Así que no tenemos que recordar el orden.
%s es una forma antigua de formatear cadenas, mejor tecnología como p. formato () y f inferior Se presentan productos que son más fáciles de usar y ofrecen más funcionalidad.
¡Hola a todos! Este soy yo, Marcel, también conocido como Masha. ¡Obtengo ingresos de tiempo completo en línea y en MaschiTuts y estoy emocionado de compartir con ustedes cómo me mantengo en la cima! Dirijo varios blogs y sitios web lucrativos y me gusta hablar sobre estos proyectos cuando tengo la oportunidad. Hago esto con todo mi corazón. De hecho, el momento en que dejé de trabajar de 8 a 5 y me encontré en un negocio en línea como emprendedor digital fue probablemente una de las mejores decisiones que he tomado en mi vida. ¡Quiero estar seguro de que tú también irás por este camino! Que nadie te diga que es imposible. El cielo es el límite, de verdad… ¡solo si crees en él! Y todo comienza aquí… ¡en Maschiuts!