Curso
1. Introducción
¿Qué es el formateo de cadenas?
El formateo de cadenas consiste en diseñarlas de forma atractiva utilizando técnicas de formateo proporcionadas por el lenguaje de programación en cuestión. Tenemos diferentes técnicas de formateo de cadenas en Python. Ahora vamos a explorar la nueva técnica de formateo f-string.
f-string evalúa en tiempo de ejecución del programa. Es rápido en comparación con los métodos anteriores.
f-string tiene una sintaxis sencilla en comparación con las anteriores técnicas de formateo de cadenas de Python. Exploraremos cada parte de este formato utilizando diferentes ejemplos.
Ejecute y edite el código de este tutorial en línea
Ejecutar código1.1. Syntax
Cada sentencia f-string consta de dos partes, una es el carácter f o F, y la siguiente es una cadena a la que queremos dar formato. La cadena irá entre comillas simples, dobles o triples.
Veamos la sintaxis.
## we can also use F, '', ''''', """"""'
f"string"
En lugar de cadena, tenemos que colocar nuestra sentencia que va a formatear.
2. Visualización de variables
Anteriormente utilizamos el método str.format() sobre todo para dar formato a las cadenas. Pero, los tiempos han cambiado tenemos un nuevo método para hacer que nuestros esfuerzos sean el doble de rápidos.
Las variables entre llaves { } se muestran en la salida como una sentencia print normal. Veamos un ejemplo.
## declaring variables
name = "Datacamp"
type_of_company = "Educational"
## enclose your variable within the {} to display it's value in the output
print(f"{name} is an {type_of_company} company.")
Datacamp is an Educational company.
Hemos obtenido los valores de las variables en la salida. Ves, es fácil. También podemos sustituir la f por F.
## declaring variables
name = "Datacamp"
type_of_company = "Educational"
## enclose your variable within the {} to display it's value in the output
print(F"{name} is an {type_of_company} company.")
Datacamp is an Educational company.
f es inferior o superior funcionará igual.
3. Expresiones
¿Y si pudiéramos evaluar expresiones como aritmética, llamadas a funciones, etc., en una cadena? Es genial, ¿verdad? ¡Sí! Es muy, muy emocionante utilizar expresiones dentro de una cadena. f-string nos permite evaluar expresiones dentro de la cadena.
Basta con poner la expresión dentro de { } para evaluarla. f-string la evalúa en tiempo de ejecución del programa. Es una función excelente que le ahorra tiempo y código.
Veamos ejemplos de los distintos tipos de expresiones.
## arithmetic expression
print(f"{5 * 5}")
25
También podemos llamar a funciones dentro del { }. Definamos una función greet() y llamémosla en la cadena f
def greet(name):
return "Hello, " + name
## calling the function using f-string
name = "Datacamp"
print(f"{greet(name)}")
Hello, Datacamp
Del mismo modo, también podemos llamar a los métodos predefinidos. Veamos.
## calling the 'title' method which makes the first letter of every word upper
string = "datacamp is an educational company."
print(f"{string.title()}")
Datacamp Is An Educational Company.
¿Qué más podemos hacer con la cadena f? ¿Podemos visualizar el objeto? Sí que podemos. Es lo mismo que cuando mostramos la salida de las variables.
class Sample:
def __init__(self, name, age):
self.name = name
self.age = age
## this method will be called when we print the object
def __str__(self):
return f'{self.name} is {self.age} years old.'
john = Sample("John", 19)
## it'll wake up the __str__() method
print(f"{john}")
John is 19 years old.
4. Caracteres especiales
¿Qué pasa si queremos mostrar caracteres especiales como {}, \', \"?, que son utilizados internamente por Python con un significado especial. ¿Podemos utilizar caracteres de escape dentro de la cadena f? Veamos las respuestas a estas preguntas.
4.1. Citas
Podemos utilizar cualquier comilla {simple o doble o triple} en la cadena f. Tenemos que utilizar el carácter de escape para imprimir las comillas. La expresión f-string no nos permite utilizar la barra invertida. Tenemos que colocarlo fuera del { }.
Veámoslo con ejemplos.
name = "Datacamp"
## displaying single quotations
print(f"Hello, \'{name}\'")
print()
## displaying double quotations
print(f"Hello, \"{name}\"")
Hello, 'Datacamp'
Hello, "Datacamp"
Veamos otros tipos de citas en cadenas f.
f'{"Hello, Datacamp"}'
'Hello, Datacamp'
f"{'Hello, Datacamp'}"
'Hello, Datacamp'
f"""Hello, Datacamp"""
'Hello, Datacamp'
f'''Hello, Datacamp'''
'Hello, Datacamp'
También podemos incluir { } dentro de las tres comillas.
No puedes usar las barras invertidas dentro de { } en f-string. Recibirá un error si se incluyen dentro de { }.
print(f"{\"Datacamp\"}")
File "<ipython-input-60-b9a2502d6274>", line 1
print(f"{\"Datacamp\"}")
^
SyntaxError: f-string expression part cannot include a backslash
4.2. Ortesis
Tenemos que utilizar un doble juego de llaves para imprimir las llaves utilizando f-string. Veamos un ejemplo.
print(f"{{Datacamp}}")
{Datacamp}
Si desea mostrar dos conjuntos de llaves utilizando f-string, entonces tiene que utilizar cuatro conjuntos de llaves.
print(f"{{{{Datacamp}}}}")
{{Datacamp}}
5. Diccionarios
Tenemos que tener un poco de cuidado al tratar con claves de diccionario dentro de la cadena f. Tiene que utilizar una cita diferente a la clave del diccionario y a la cadena f. No está permitido utilizar las mismas comillas para una clave de diccionario que si fuera una cadena f.
person = {"name": "John", "age": 19}
print(f"{person['name']} is {person['age']} years old.")
John is 19 years old.
En el caso de los diccionarios, no está permitido utilizarlo como se indica a continuación.
person = {"name": "John", "age": 19}
print(f'{person['name']} is {person['age']} years old.')
File "<ipython-input-65-6849ff0810ae>", line 2
print(f'{person['name']} is {person['age']} years old.')
^
SyntaxError: invalid syntax
Conclusión
Espero que aprendas algo nuevo en Python leyendo este tutorial. Para obtener más información sobre las cadenas y las técnicas de formato anteriores, consulte este tutorial en Datacamp. También puede consultar el curso Expresiones regulares en Python de DataCamp.
Feliz codificación :)
