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
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
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
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
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
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
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
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
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?