Domine el Formateo de Strings en Python con format(): Ejemplos Claros
¿Qué es Python String format()?
Python String format() es una función usada para reemplazar, sustituir o convertir la cadena con placeholders con valores válidos en la cadena final. Es una función integrada de la clase string de Python, que devuelve la cadena formateada como salida. Los placeholders dentro de la cadena se definen entre llaves.
Por ejemplo, "Welcome to Guru99 {}".format('valor aquí').
En este tutorial aprenderá:
- Qué es Python String format()
- Sintaxis de la función format() en Python
- Cómo funciona string format()
- Ejemplo: Placeholder vacío reemplazado con valor string
- Ejemplo: Placeholder vacío reemplazado con valor numérico
- Ejemplo: Usando variable o argumentos keyword dentro del Placeholder
- Ejemplo: Usando índice o argumentos posicionales dentro del Placeholder
- Formateo dentro de Placeholders
- Usando clase con format()
- Usando diccionario con format()
- Relleno de Sustituciones de Variables
Sintaxis de la función format() en Python
templatestring.format(val1, val2...)
Parámetros
val1, val2 … : Los valores que necesitan reemplazar en la cadena plantilla dada que tiene placeholders en forma de llaves {}. Los placeholders pueden ser string, par clave/valor, enteros, números de punto flotante, caracteres, etc.
Valor de retorno:
Devolverá la cadena final, con valores válidos reemplazados en lugar de los placeholders dados entre llaves.
Placeholders
Los placeholders en la cadena plantilla se representan usando llaves, ej. {}. El placeholder puede estar vacío {}, o puede tener una variable ej. {name}, o puede tener un índice numérico ej. {0}, {1} etc.
Cómo funciona string format()?
El método Python String format() escaneará la cadena original buscando placeholders. Los placeholders pueden ser llaves vacías ({}), argumentos posicionales ej. la cadena puede tener placeholders con índice 0, 1 ej. {0}, {1} etc.
Para argumentos keyword, el nombre de la variable estará presente dentro de las llaves ej. {name}, {age}. En el caso de llaves vacías, los valores del format se reemplazarán dentro de las llaves en secuencia.
El primer valor se reemplazará con la primera llave vacía, seguido por el siguiente. Para argumentos posicionales, el índice comenzará desde 0 y así sucesivamente. Los valores estarán disponibles en format separados por comas, y el valor 0 apuntará al primer valor dentro de format y así sucesivamente.
Para argumentos keyword, es decir, cuando usa una variable dentro de sus placeholders, puede tener el orden de valores dentro del format como necesite. El orden no importa aquí ya que los valores se reemplazarán basándose en el nombre de la variable presente en el format(). Aquí hay algunos ejemplos de cómo usar placeholders dentro de una cadena como vacíos, posicionales y usando keywords o variables.
Ejemplo: Placeholder vacío reemplazado con valor string
En el ejemplo siguiente, la cadena tiene llaves vacías({}). El valor dado al format se reemplazará dentro de las llaves({}).
El valor que queremos reemplazar es un string.
Ejemplo:
Usando Formateo de Strings en Python, queremos que las llaves ({}) sean reemplazadas con un valor string. El valor se da a format("Guru99"). Al ejecutar, las llaves {} se reemplazan con Guru99, y obtendrá la cadena final como Welcome to Guru99 tutorials.
print ("Welcome to {} tutorials".format("Guru99"))
Salida:
Welcome to Guru99 tutorials
Ejemplo: Placeholder vacío reemplazado con valor numérico
En el ejemplo siguiente, queremos que el valor numérico sea reemplazado dentro de la cadena original. Las llaves({}) se añaden al lugar donde necesita el valor numérico. Cuando ejecuta, las llaves vacías ({}) se reemplazan con el valor numérico.
Ejemplo:
También puede hacer uso de format() para insertar números dentro de su string. El ejemplo mostrará cómo reemplazar el Placeholder vacío {} con el número 99 presente dentro de format().
print ("Welcome to Guru{} Tutorials".format("99"))
Salida:
Welcome to Guru99 Tutorials
Ejemplo: Usando variable o argumentos keyword dentro del Placeholder
También es posible hacer uso de variables dentro de las llaves, como se muestra en el ejemplo siguiente. Las variables se definen dentro de format(). Por lo tanto, cuando ejecuta, el valor asignado a la variable se reemplaza dentro de la cadena original.
Ejemplo:
Puede usar variables dentro de las llaves por ejemplo {name} {num}. Los valores para las variables name y num están disponibles dentro del format ej. format(name="Guru", num="99"). Los valores dados a name y num se reemplazarán dentro de {name} y {num}.
print ("Welcome to {name}{num} Tutorials".format(name="Guru", num="99"))
Salida:
Welcome to Guru99 Tutorials
Ejemplo: Usando índice o argumentos posicionales dentro del Placeholder
Los valores pueden ser reemplazados usando índices como 0, 1, 2 dentro de los placeholders. El valor se tomará en orden del format(), como se muestra en el ejemplo siguiente.
Ejemplo:
print ("Welcome to {0}{1} Tutorials".format("Guru","99"))
Salida:
Welcome to Guru99 Tutorials
Ejemplo: Usando múltiples placeholders dentro de una cadena
En este ejemplo, vamos a usar múltiples placeholders vacíos.
Ejemplo:
La cadena usada en el ejemplo tiene múltiples placeholders vacíos y cada placeholder se referirá a un valor dentro de format(). El primer valor se reemplazará para el primer placeholder y así sucesivamente.
print ("{} es {} nuevo tipo de {} experiencia!".format("Guru99", "totally","learning"))
Salida:
Guru99 es totally nuevo tipo de learning experiencia!
Formateo dentro de Placeholders
Ha visto que es posible tener Placeholder como vacío, con una variable o un índice. También es posible que pueda aplicar Formateo de Strings de Python dentro del Placeholder.
Aquí está la lista de formatos
| Formato | Descripción | Ejemplo |
|---|---|---|
:d |
Dar salida en formato decimal cuando se usa dentro del placeholder | print("El valor binario a decimal es : {:d}".format(0b0011))Salida: El valor binario a decimal es : 3 |
:b |
Dar salida en formato binario cuando se usa dentro del placeholder | print("El valor binario es : {:b}".format(500))Salida: El valor binario es : 111110100 |
:e |
Dar salida en formato científico cuando se usa dentro del placeholder, el exponente e en minúscula | print("El valor científico es : {:e}".format(40))Salida: El valor formato científico es : 4.000000e+01 |
:E |
Dar salida en formato científico cuando se usa dentro del placeholder, el exponente E en mayúscula | print("El valor científico es : {:E}".format(40))Salida: El valor científico es : 4.000000E+01 |
:f |
Dar salida en formato punto fijo. Por defecto, obtendrá salida de cualquier número con seis decimales. En caso de necesitar hasta 2 decimales, úselo como .2f ej. un punto (.) delante de 2f | print("El valor es : {:f}".format(40))Salida: El valor es : 40.000000 Ejemplo: Mostrando salida hasta 2 decimales.
Salida: El valor es: 40.00 |
:o |
Dar salida en formato octal | print("El valor es : {:o}".format(500))Salida: El valor es : 764 |
:x |
Dar salida en formato hex en minúscula | print("El valor es : {:x}".format(500))Salida: El valor es : 1f4 |
:X |
Dar salida en formato hex en mayúscula | print("El valor es : {:X}".format(500))Salida: El valor es : 1F4 |
:n |
Dar salida en formato número | print("El valor es : {:n}".format(500.00))Salida: El valor es : 500 |
:% |
Dar salida en formato porcentaje. Por defecto dará 6 decimales para la salida de porcentaje, en caso de no querer decimales puede usar punto con 0 ej. ({:.0%}). | print("El valor es : {:%}".format(0.80))Salida: El valor es : 80.000000% Este ejemplo muestra cómo saltar los decimales usando {:.0%} dentro del placeholder.
El valor es: 80% |
:_ |
Dar salida con guion bajo como separador de miles. Disponible desde Python 3.6+. | print("El valor es {:_}".format(1000000))Salida: El valor es : 1_000_000 |
:, |
Dar salida con coma como separador de miles | print("El valor es : {:,}".format(1000000))Salida: El valor es : 1,000,000 La coma(,) se añade como separador de miles como se muestra en la salida. |
: |
Añadir espacio antes de números positivos | Este ejemplo muestra cómo añadir espacio o padding antes del número dado. El número 5 indica la cuenta de espacios que quiere antes del número.
Salida: El valor es: 40 |
:- |
Añadir signo menos antes de números negativos | El ejemplo muestra cómo obtener la salida con signo menos (-) antes del número usando {:-}.
Salida: El valor es: -40 |
:+ |
Usar signo más para indicar número positivo | El ejemplo muestra cómo obtener la salida con signo más (+) antes del número usando {:+}.
Salida: El valor es: +40 |
:= |
El igual a se usa para colocar el signo +/- al lado izquierdo | El ejemplo muestra cómo obtener la salida con signo más/menos (+/-) antes del signo igual usando {:=}.
Salida: El valor es -40 |
:^ |
Centrar el resultado final | El ejemplo muestra usar {:^} para centrar el texto. El número 10 se usa para añadir 10 espacios para mostrar el centrado cuando el valor es reemplazado.
Salida: El valor 40 es valor positivo Aquí, puede usar 10 que añadirá 10 espacios en el texto final, y el valor a reemplazar será centrado entre los 10 espacios. Los espacios de 10 se añaden solo para mostrar la alineación centrada del valor reemplazado. |
:> |
Alinear a la derecha el resultado final | El espacio de 10 se añade usando (:>10), y el valor reemplazado es alineado a la derecha.
Salida: El valor 40 es valor positivo |
:< |
Alinear a la izquierda el resultado final | El espacio de 10 se añade usando (:<10), y el valor reemplazado es alineado a la izquierda.
Salida: El valor 40 es valor positivo |
Usando clase con format()
En este ejemplo, estamos creando una clase y usando el objeto de la clase dentro del método .format de Python. Los placeholders se referirán a propiedades o miembros de la clase usando el objeto de la clase.
Ejemplo:
La clase es llamada dentro del format(c=MiClase()). El objeto c tendrá la referencia a las propiedades y métodos dentro de la clase MiClase().
class MiClase:
msg1="Guru"
msg2="Tutorials"
print("Welcome to {c.msg1}99 {c.msg2}!".format(c=MiClase()))
Salida:
Welcome to Guru99 Tutorials!
Usando diccionario con format()
También es posible hacer uso de diccionario dentro de format() como se muestra en el ejemplo siguiente:
mi_dict = {'msg1': "Welcome", 'msg2': 'Guru99'}
print("{m[msg1]} to {m[msg2]} Tutorials!".format(m=mi_dict))
Salida:
Welcome to Guru99 Tutorials!
Relleno de Sustituciones de Variables
Usando el método string.format(), puede añadir relleno, espacio usando placeholders dentro de su string.
Ejemplo:
En el siguiente ejemplo añadirá espacio dentro del Placeholder usando el format(). Para añadir espacio, tiene que especificar el número de espacios dentro de las llaves después de dos puntos(:). Así el Placeholder se verá como {:5}.
print("I have {:5} dogs and {:5} cat".format(2,1))
Salida:
I have 2 dogs and 1 cat
También puede dar el índice dentro del placeholder por ejemplo: {0:5} donde 0 se referirá al primer valor dentro de format.
print("I have {0:5} dogs and {1:5} cat".format(2,1))
Salida:
I have 2 dogs and 1 cat
Resumen
- La clase string de Python nos da un comando integrado importante llamado format() que nos ayuda a reemplazar, sustituir o convertir la cadena con placeholders con valores válidos en la cadena final.
- Los placeholders dentro del módulo string de Python se definen en llaves, ej. "Welcome to Guru99 {}".format('valor aquí').
- El placeholder puede ser vacío {}, o puede tener una variable ej. {name}, o puede tener un índice numérico ej. {0}, {1} etc.
- Puede hacer uso de Formateo de Strings en Python dentro de placeholders que puede ayudar a añadir padding, centrar, y también ayudar con formateo de números.
python
- Domine el Método strip() de Python: Guía Completa y Ejemplos Prácticos
- Domine str.count() en Python: Cómo Contar Caracteres y Subcadenas con Ejemplos
- Domine el Método String.find() en Python: Sintaxis, Ejemplos y Alternativas
- Dominando las funciones lambda en Python: ejemplos prácticos y mejores prácticas
- Función round() en Python explicada con ejemplos prácticos
- Dominando la función map() de Python: sintaxis, ejemplos y mejores prácticas
- Python timeit(): medición de tiempo de ejecución con ejemplos prácticos
- Counter de collections en Python: conteo eficiente, actualización y operaciones aritméticas
- Entendiendo type() e isinstance() en Python: ejemplos prácticos
- Dominando Java String.indexOf(): Localizar subcadenas y ejemplos prácticos
- Dominando el método compareTo() de Java String: Sintaxis, casos de uso y ejemplos prácticos