Saltar al contenido principal

Formato f-string en Python

Conozca la técnica de formateo f-string en Python 3.6. En este tutorial, verá qué ventajas ofrece y repasará algunos casos de uso de ejemplo.
3 may 2024  · 5 min de lectura

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ódigo

1.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 :)

Temas

Cursos de Python

curso

Introduction to Python

4 hr
5.9M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

Cómo aprender Python desde cero en 2024: Guía del experto

Descubre cómo aprender Python, sus aplicaciones y la demanda de conocimientos de Python. Comienza hoy tu andadura en Python ​con nuestra guía completa.
Matt Crabtree's photo

Matt Crabtree

19 min

tutorial

Tutorial de Python String format()

Aprende a formatear cadenas en Python.
DataCamp Team's photo

DataCamp Team

5 min

tutorial

Tutorial de cadenas en Python

En este tutorial, aprenderás todo sobre las cadenas de Python: trocearlas y encadenarlas, manipularlas y darles formato con la clase Formatter, cadenas f, plantillas y ¡mucho más!
Sejal Jaiswal's photo

Sejal Jaiswal

16 min

tutorial

Tutorial de Docstrings en Python

Aprende sobre las Docstrings de Python. Encuentra diferentes ejemplos y tipos de formato de docstrings para Sphinx, Numpy y Pydoc.
Aditya Sharma's photo

Aditya Sharma

15 min

tutorial

Función Print() de Python

Aprenda cómo puede aprovechar la capacidad de una simple función de impresión de Python de varias maneras con la ayuda de ejemplos.
Aditya Sharma's photo

Aditya Sharma

10 min

tutorial

Tutorial de funciones de Python

Un tutorial sobre funciones en Python que cubre cómo escribir funciones, cómo invocarlas y mucho más.
Karlijn Willems's photo

Karlijn Willems

14 min

Ver másVer más