Menu

Strings en Python: f-strings, slicing y todos los métodos que vas a usar

Trabajar con texto en Python — crear strings, usar f-strings, slicing y los métodos del día a día como split, join, replace y strip.

Texto, pero con métodos

Un string de Python es una secuencia de caracteres, y usarás strings más que cualquier otro tipo. Cada nombre, etiqueta, mensaje, URL, ruta de archivo y respuesta de API vive en un string en algún momento.

Crea uno con comillas — simples, dobles o triples:

main.py
Output
Click Run to see the output here.

Las comillas simples y dobles son intercambiables. Usa las que te ahorren tener que escapar un carácter. "don't" queda limpio; 'don\'t' necesita una barra invertida.

Los strings son inmutables. Una vez que un string existe, no puedes cambiar uno de sus caracteres en el sitio. Cada operación que parece cambiar un string en realidad devuelve uno nuevo. Por eso escribirás text = text.upper() en vez de solo text.upper() — sin la reasignación, el nuevo string en mayúsculas se tiraría.

Unir y repetir

Dos operadores hacen la mayor parte de la combinación de strings que vas a necesitar:

main.py
Output
Click Run to see the output here.

+ concatena strings. * repite un string. Ambos devuelven un string nuevo.

Concatenar muchas piezas con + se vuelve feo rápido. Cuando estés mezclando valores de tipos distintos dentro de un mensaje, recurre a las f-strings — mira la siguiente sección.

f-Strings: la forma con la que normalmente vas a formatear

Pon una f delante de la comilla de apertura y el string se convierte en una plantilla. Cualquier cosa en {...} se reemplaza con el valor de esa expresión:

main.py
Output
Click Run to see the output here.

Puedes meter cualquier expresión dentro de las llaves — variables, aritmética, llamadas a métodos, llamadas a funciones. Mantenlas simples, eso sí; si te tienta apretar un cálculo de tres líneas dentro de {...}, calcúlalo primero en una variable con nombre.

Las f-strings también soportan especificadores de formato después de un dos puntos, para controlar el formato de números, el relleno y la alineación:

main.py
Output
Click Run to see the output here.

Estos format specs son los mismos que usa str.format() y vale la pena un vistazo rápido cuando estés cómodo con lo básico. No los necesitas para código del primer día.

Slicing: coger un trozo

Los strings son indexables como secuencias. Cada carácter tiene una posición que empieza en cero, y puedes coger un carácter o un rango:

main.py
Output
Click Run to see the output here.

El patrón [start:stop:step] aparece también en listas y otras secuencias, así que dedicar unos minutos a interiorizarlo se paga en todos sitios.

Dos cosas que vale la pena señalar:

  • El índice stop es exclusivo: word[0:2] incluye los índices 0 y 1, no el 2.
  • Los índices negativos cuentan desde el final: -1 es el último carácter, -2 el anterior, y así.

Cómo invertir un string

Los strings no tienen método .reverse() — son inmutables — pero el slicing con paso -1 hace el trabajo en una línea:

main.py
Output
Click Run to see the output here.

word[::-1] se lee como "desde el principio al final, paso hacia atrás de 1". El resultado es un string nuevo; el original queda intacto. Si necesitas iterar los caracteres al revés sin materializar un nuevo string, reversed(word) devuelve un iterador perezoso.

Cómo comprobar la longitud de un string

len(text) devuelve el número de caracteres:

main.py
Output
Click Run to see the output here.

Ten en cuenta que len cuenta puntos de código Unicode, no bytes. len("café") es 4, no 5, aunque la codificación UTF-8 ocupe más bytes — que suele ser lo que quieres.

Cómo comprobar si un string contiene un substring

El operador in es la comprobación idiomática, y se lee como inglés:

main.py
Output
Click Run to see the output here.

Para comprobaciones sin distinción de mayúsculas, normaliza ambos lados primero:

main.py
Output
Click Run to see the output here.

Si necesitas la posición, no solo un sí/no, usa .find() — devuelve el índice o -1 cuando el substring no está.

Métodos de string comunes

Los strings tienen docenas de métodos. Recurrirás a este puñado constantemente:

main.py
Output
Click Run to see the output here.

Partir y unir:

main.py
Output
Click Run to see the output here.

.split(separator) convierte un string en una lista. separator.join(list_of_strings) lo une de vuelta. Estos dos métodos cargan con una cantidad desproporcionada del trabajo real con strings.

Otro par útil:

main.py
Output
Click Run to see the output here.

Ese es un parser para una entrada de configuración de una línea, escrito en tres líneas. Strings pequeños, gran palanca.

Comprobar qué hay dentro

Varios métodos devuelven booleanos, útiles en condiciones if:

main.py
Output
Click Run to see the output here.

Úsalos con moderación — no manejan todas las rarezas Unicode que podrías esperar. Para cualquier cosa más allá de ASCII, apóyate en regex o en unicodedata.

Escapar caracteres especiales

Algunos caracteres necesitan una barra invertida para aparecer dentro de un string:

main.py
Output
Click Run to see the output here.

Si estás escribiendo rutas de Windows o regex, los strings raw te hacen la vida más fácil. Pon una r delante de la comilla y las barras invertidas dejan de ser caracteres de escape:

main.py
Output
Click Run to see the output here.

Los strings están en todas partes, así que manténlo legible

Tres hábitos que evitan que el código con muchos strings se convierta en sopa:

  1. Usa f-strings para interpolación. No encadenes + entre varios tipos.
  2. Reasigna cuando "mutes". text = text.strip(), no solo text.strip().
  3. Recurre a .split() y .join() antes de escribir bucles manuales para parsear o ensamblar texto. Son más rápidos, más claros y más difíciles de equivocar.

Siguiente: f-strings en profundidad — la herramienta de formateo que ya has visto un puñado de veces, más los specs de formato de números y fechas que las hacen dignas de dominar.

Preguntas frecuentes

¿Qué es una f-string en Python?

Una f-string es un literal de string prefijado con f, donde cualquier cosa dentro de {...} se reemplaza con el valor de esa expresión. Ejemplo: f"Hello, {name}!" inserta el valor actual de name en el string en tiempo de ejecución.

¿Cómo invierto un string en Python?

Usa slicing con paso -1: reversed_text = original[::-1]. Eso devuelve un nuevo string hecho con los mismos caracteres en orden inverso. El string original queda intacto porque los strings en Python son inmutables.

¿Cómo parto un string en Python?

Llama a .split() sobre el string. Sin argumento parte por cualquier espacio en blanco: "a b c".split() devuelve ['a', 'b', 'c']. Puedes pasar un separador específico: "a,b,c".split(",") devuelve ['a', 'b', 'c'].

¿Los strings de Python son mutables?

No. Los strings son inmutables — una vez que un string existe, no puedes cambiar ninguno de sus caracteres en el sitio. Cada método que "cambia" un string en realidad devuelve uno nuevo. Por eso ves patrones como text = text.strip() — reasignas la variable al nuevo string.

¿Cómo concateno strings en Python?

Usa + para unir dos strings: "hello" + " " + "world". Para combinar un valor dentro de una frase, prefiere una f-string: f"Hello, {name}". Para juntar muchas piezas de una lista, usa separator.join(pieces) — es más rápido y se lee mejor que + encadenado.

¿Cómo compruebo la longitud de un string en Python?

Llama a la función incorporada len(text). Devuelve el número de caracteres (puntos de código Unicode), así que len("café") es 4. Para la longitud en bytes, codifica primero: len(text.encode("utf-8")).

Aprende a programar con Coddy

COMENZAR