Strings en Python
Aprendé a crear, manipular y transformar cadenas de texto. Los strings son uno de los tipos de datos más usados en Python.
¿Qué es un String?
Un string es una secuencia de caracteres encerrada entre comillas. En Python podés usar comillas simples, dobles o triples.
nombre = "Juan"
apellido = 'Pérez'
parrafo = """Este es un texto
que ocupa varias líneas
sin necesidad de \n"""
En Python no hay diferencia entre 'texto' y "texto". Elegí una convención y sé consistente. Las triples comillas (""") sirven para texto multilínea.
F-strings — Interpolación moderna
Los f-strings (formatted strings) permiten insertar variables y expresiones directamente dentro de un string. Es la forma más moderna y recomendada.
nombre = "Ana"
edad = 28
# F-string — ponés f antes de las comillas
print(f"Hola, soy {nombre} y tengo {edad} años")
# Podés poner expresiones completas dentro de {}
print(f"El doble de mi edad es {edad * 2}")
print(f"Mayúsculas: {nombre.upper()}")
# Formateo de números
precio = 1234.5678
print(f"Precio: ${precio:.2f}") # 2 decimales
print(f"Entero: {precio:.0f}") # sin decimales
Es un format specifier: : inicia el formato, .2 indica 2 decimales, f significa float. {precio:.2f} muestra el número con exactamente 2 decimales.
Métodos de strings
Python incluye decenas de métodos para manipular strings. Los más usados:
Transformar texto
texto = " Hola Mundo "
print(texto.upper()) # " HOLA MUNDO "
print(texto.lower()) # " hola mundo "
print(texto.strip()) # "Hola Mundo" — quita espacios
print(texto.lstrip()) # "Hola Mundo " — quita solo izquierda
print(texto.rstrip()) # " Hola Mundo" — quita solo derecha
print(texto.title()) # " Hola Mundo " — Primera letra mayúscula
print(texto.swapcase()) # " hOLA mUNDO " — invierte mayúsculas
Buscar y reemplazar
frase = "Python es genial, Python es poderoso"
print(frase.find("Python")) # 0 — posición de la primera ocurrencia
print(frase.count("Python")) # 2 — cuántas veces aparece
print(frase.replace("Python", "Django")) # reemplaza todas
print(frase.startswith("Python")) # True
print(frase.endswith("poderoso")) # True
print("genial" in frase) # True — in para buscar
Dividir y unir
csv = "manzana,naranja,uva,pera"
frutas = csv.split(",") # ['manzana', 'naranja', 'uva', 'pera']
print(frutas)
print(frutas[0]) # 'manzana'
# Unir con join
separado = " - ".join(frutas) # "manzana - naranja - uva - pera"
print(separado)
upper() / lower()
"hola".upper() → "HOLA"
Convierte a mayúsculas o minúsculas
strip()
" texto ".strip() → "texto"
Elimina espacios al inicio y al final
split()
"a,b,c".split(",") → ['a','b','c']
Divide el string en una lista
replace()
"hola".replace("h","H") → "Hola"
Reemplaza texto dentro del string
join()
"-".join(['a','b']) → "a-b"
Une una lista en un string
find()
"hola".find("o") → 1
Posición de la primera ocurrencia
Indexing y Slicing
Cada carácter de un string tiene una posición (índice) que empieza en 0. Podés acceder a caracteres individuales o a porciones del string.
texto = "Python"
# P y t h o n
# 0 1 2 3 4 5 (índices positivos)
# -6-5-4-3-2-1 (índices negativos)
print(texto[0]) # "P"
print(texto[3]) # "h"
print(texto[-1]) # "n" — último carácter
print(texto[-2]) # "o" — penúltimo
Slicing — extraer porciones
texto = "Python es genial"
# [inicio:fin:paso]
print(texto[0:6]) # "Python" — del 0 al 5 (6 no incluido)
print(texto[7:9]) # "es"
print(texto[10:]) # "genial" — desde el 10 hasta el final
print(texto[:6]) # "Python" — desde el inicio hasta el 5
print(texto[::2]) # "Pto sgnl" — un carácter de cada 2
print(texto[::-1]) # "laieneg se nohtyP" — invertido
No podés cambiar un carácter individual: texto[0] = "J" da error. Para modificar un string tenés que crear uno nuevo: texto = "J" + texto[1:]
len() y otras funciones built-in
texto = "Alexandria"
print(len(texto)) # 10 — longitud
print(min(texto)) # "A" — carácter menor (por ASCII)
print(max(texto)) # "x" — carácter mayor
print(texto.isalpha()) # True — solo letras
print("123".isnumeric()) # True — solo números
print(" ".isspace()) # True — solo espacios
print(texto.isalnum()) # True — letras y números
Ejemplo Completo
Procesador de texto que aplica varias operaciones:
# Datos de entrada
nombre_completo = " juan pablo pérez "
email = "JUAN@EJEMPLO.COM"
descripcion = "soy estudiante de python,me gusta programar,quiero aprender más"
# Limpiar y formatear nombre
nombre_limpio = nombre_completo.strip().title()
print(f"Nombre: {nombre_limpio}")
# Normalizar email
email_normalizado = email.lower()
print(f"Email: {email_normalizado}")
# Procesar descripción
oraciones = descripcion.split(",")
print(f"\nDescripción en {len(oraciones)} partes:")
for i, oracion in enumerate(oraciones, 1):
print(f" {i}. {oracion.strip().capitalize()}")
Probá el Ejemplo 4: Procesador de texto
Buenas Prácticas
- Usá f-strings para formateo — son más legibles que
+o.format() - Siempre strip() antes de procesar texto del usuario — puede tener espacios extra
- in para buscar —
"hola" in textoes más legible quefind() - join() para unir listas — más eficiente que concatenar en un loop
- Comillas consistentes — elegí simples o dobles y no mezcles sin razón