3.3.7 Interpolación de cadenas
En este apartado veremos cómo interpolar valores dentro de cadenas de texto utilizando diferentes formatos. Interpolar (en este contexto) significa sustituir una variable por su valor dentro de una cadena de texto.
Veamos los estilos que proporciona Python para este cometido:
Aunque aún podemos encontrar código con el estilo antiguo y el estilo nuevo en el formateo de cadenas, vamos a centrarnos en el análisis de los «f-strings» que se están utilizando bastante en la actualidad.
«f-strings»
Los f-strings aparecieron en Python 3.6 y se suelen usar en código de nueva creación. Es la forma más potente – y en muchas ocasiones más eficiente – de formar cadenas de texto incluyendo valores de otras variables.
La interpolación en cadenas de texto es un concepto que existe en la gran mayoría de lenguajes de programación y hace referencia al hecho de sustituir los nombres de variables por sus valores cuando se construye un «string».
Para indicar en Python que una cadena es un «f-string» basta con precederla de una f e incluir las variables o expresiones a interpolar entre llaves {…}.
Supongamos que disponemos de los datos de una persona y queremos formar una frase de bienvenida con ellos:
Podría surgir la duda de cómo incluir llaves dentro de la cadena de texto, teniendo en cuenta que las llaves son símbolos especiales para la interpolación de variables. La respuesta es duplicar las llaves:
Formateando cadenas
Nivel intermedio
Los «f-strings» proporcionan una gran variedad de opciones de formateado: ancho del texto, número de decimales, tamaño de la cifra, alineación, etc. Muchas de estas facilidades se pueden consultar en el artículo Best of Python3.6 f-strings[1]
Dando formato a valores enteros:
Dando formato a otras bases:
Dando formato a valores flotantes:
Alineando valores:
Modo «debug»
A partir de Python 3.8, los «f-strings» permiten imprimir el nombre de la variable y su valor, como un atajo para depurar nuestro código. Para ello sólo tenemos que incluir un símbolo = después del nombre de la variable:
Dada la variable:
, obtenga los siguientes resultados utilizando «f-strings»:
Python trabaja por defecto con caracteres Unicode. Eso significa que tenemos acceso a la amplia carta de caracteres que nos ofrece este estándar de codificación.
Supongamos un ejemplo sobre el típico «emoji» de un cohete definido en este cuadro:
La función chr() permite representar un carácter a partir de su código:
La función ord() permite obtener el código (decimal) de un carácter a partir de su representación:
El modificador \N permite representar un carácter a partir de su nombre:
3.3.9 Cas
os de usoNivel avanzado
Hemos estado usando muchas funciones de objetos tipo «string» (y de otros tipos previamente). Pero quizás no sabemos aún como podemos descubrir todo lo que podemos hacer con ellos y los casos de uso que nos ofrece.
Python proporciona una función «built-m» llamada dir() para inspeccionar un determinado tipo de objeto:
Esto es aplicable tanto a variables como a literales e incluso a tipos de datos (clases) explícitos:
- Escriba un programa en Python que acepte el nombre y los apellidos de una persona y
- Entrada: name=Sergio; surname=Delgado Quintero
- Salida: Delgado Quintero, Sergio
- Escriba un programa en Python que acepte una ruta remota de recurso samba, y lo se
- Entrada: //1.1.1.1/eoi/python
- Salida: host=1.1.1.1; path=/eoi/python
- Escriba un programa en Python que acepte un «string» con los 8 dígitos de un NIF, y
- Entrada: 12345678
- Salida: 12345678Z
- Escriba un programa en Python que acepte un entero n y compute el valor de n + nn +
- Entrada: 5
- Salida: 615 (5 + 55 + 555)
- Escriba un programa en Python que acepte una palabra en castellano y calcule una m<
- Entrada: ordenador
- Salida: 36
AMPLIAR CONOCIMIENTOS
- A Guide to the Newer Python String Format Techniques
- Strings and Character Data in Python
- How to Convert a Python String to int
- Your Guide to the Python print<> Function
- Basic Input, Output, and String Formatting in Python
- Unicode & Character Encodings in Python: A Painless Guide
- Python String Formatting Tips & Best Practices
- Python 3’s f-Strings: An Improved String Formatting Syntax
- Splitting, Concatenating, and Joining Strings in Python
- Conditional Statements in Python
- Python String Formatting Best Practices