Saltar al contenido

Formateo de Cadenas en Python

Python es un lenguaje de programación popular conocido por su simplicidad, legibilidad y versatilidad. Una de las características esenciales de Python es el formateo de cadenas, que permite a los desarrolladores crear cadenas dinámicas sustituyendo variables y expresiones en marcadores de posición dentro de la cadena. En esta guía, cubriremos los siguientes temas:

  • ¿Qué es el formateo de cadenas?
  • La forma antigua de formatear cadenas
  • La forma nueva de formatear cadenas
  • Formateo de números
  • Formateo de cadenas
  • Formateo de fechas y horas
  • Formateo avanzado de cadenas

¿Qué es el formateo de cadenas?

El formateo de cadenas es el proceso de crear cadenas formateadas sustituyendo valores en marcadores de posición dentro de una cadena. En Python, existen varias formas de formatear cadenas, como el operador %, el método format() y las f-strings. Las f-strings son el enfoque recomendado en Python moderno.

La forma antigua de formatear cadenas

La forma antigua de formatear cadenas utiliza el operador % para sustituir valores en marcadores de posición dentro de una cadena. Aquí tienes un ejemplo:

String formatting with % operator in Python

python
name = "John"
age = 25
print("My name is %s and I am %d years old." % (name, age))

En este ejemplo, %s y %d son marcadores de posición para las variables name y age, respectivamente. Los valores de estas variables se sustituyen en los marcadores de posición utilizando el operador %.

La forma nueva de formatear cadenas

El método format() es una forma más nueva de formatear cadenas que sustituye valores en marcadores de posición dentro de una cadena. Aquí tienes un ejemplo:

String formatting by format method in Python

python
name = "John"
age = 25
print("My name is {} and I am {} years old.".format(name, age))

En este ejemplo, {} son marcadores de posición para las variables name y age, respectivamente. Los valores de estas variables se sustituyen en los marcadores de posición utilizando el método format().

Formateo de números

Python ofrece varias formas de formatear números. Aquí tienes algunos ejemplos:

Formatting numbers in a string in Python

python
x = 123.456789
print("The number is {:.2f}".format(x))
print("The number is {:,}".format(x))
print("The number is {:+}".format(x))

En el primer ejemplo, {:.2f} formatea el número a dos decimales. En el segundo ejemplo, {: ,} formatea el número con un separador de comas. En el tercer ejemplo, {:+} formatea el número con un signo más para números positivos y un signo menos para números negativos.

Formateo de cadenas

Python ofrece varias formas de formatear cadenas. Aquí tienes algunos ejemplos:

Formatting strings in various ways in Python

python
name = "John"
print("Hello, %s!" % name)
print("Hello, {}!".format(name))
print(f"Hello, {name}!")

En el primer ejemplo, %s es un marcador de posición para la variable name. En el segundo ejemplo, {} es un marcador de posición para la variable name. En el tercer ejemplo, {name} es un marcador de posición para la variable name dentro de una f-string.

Formateo de fechas y horas

Python ofrece varias formas de formatear fechas y horas. Aquí tienes algunos ejemplos:

Formatting date and time in Python

python
import datetime

date = datetime.datetime.now()
print("The date and time is {}".format(date))
print("The date and time is {: %B %d, %Y}".format(date))

En el primer ejemplo, {} es un marcador de posición para la variable date, que es un objeto datetime. En el segundo ejemplo, {: %B %d, %Y} formatea el objeto de fecha a una cadena con el formato "Mes Día, Año".

Formateo avanzado de cadenas

Python ofrece varias técnicas adicionales para hacer que el formateo de cadenas sea aún más flexible y potente.

Una de estas técnicas es el uso de marcadores de posición con nombre. En lugar de usar marcadores posicionales, puedes usar marcadores con nombre para hacer tu código más legible y comprensible. Aquí tienes un ejemplo:

Print a dictionary's values in the desired format in Python using named placeholders

python
person = {"name": "John", "age": 25}
print("My name is {name} and I am {age} years old.".format(**person))

En este ejemplo, {name} y {age} son marcadores de posición con nombre que corresponden a las claves "name" y "age" en el diccionario person. El operador ** se utiliza para desempaquetar el diccionario y pasar sus valores como argumentos de palabra clave al método format().

Otra técnica útil es el uso de especificadores de formato para controlar el ancho, la precisión y la alineación de los marcadores de posición. Aquí tienes algunos ejemplos:

format specifiers to control the width, precision, and alignment of placeholders in Python

python
x = 123.456789
print("{:<10.2f}".format(x))
print("{:,.2f}".format(x))

En el primer ejemplo, {:<10.2f} formatea el número a dos decimales y lo alinea a la izquierda dentro de un campo de ancho 10. En el segundo ejemplo, {:,.2f} formatea el número con un separador de comas y dos decimales.

Además de estas técnicas, Python también ofrece varias cadenas de formato integradas que se pueden utilizar para formatear cadenas, números y fechas/horas. Aquí tienes algunos ejemplos:

Python built-in various formatting ways

python
x = 123
date = datetime.datetime.now()
print("The number is {:x}".format(x))
print("The number is {:o}".format(x))
print("The number is {:b}".format(x))
print("The number is {:e}".format(x))
print("The date and time is {}".format(date))

En estos ejemplos, {:x} formatea el número como una cadena hexadecimal, {:o} lo formatea como una cadena octal, {:b} como una cadena binaria y {:e} en notación científica. Para fechas y horas, format() utiliza la representación en cadena del objeto a menos que formatees el valor por separado.

Conclusión

En esta guía, hemos cubierto los fundamentos del formateo de cadenas en Python, incluyendo la forma antigua y la nueva de formatear cadenas, el formateo de números, el formateo de cadenas, el formateo de fechas y horas, y técnicas avanzadas de formateo de cadenas. Al implementar estas técnicas, puedes crear cadenas dinámicas, flexibles y potentes en tu código Python que te ayudarán a resolver problemas complejos y alcanzar tus objetivos.

Práctica

¿Cuáles de las siguientes son métodos válidos para formatear cadenas en Python, según se describe en el contenido de la URL especificada?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.