Los strings (cadenas de texto) son fundamentales en programación. No solo puedes crearlos, también puedes manipularlos, dividirlos, cambiarlos de mayúsculas a minúsculas, buscar palabras dentro de ellos... Los métodos son como "herramientas" que vienen con los strings.
Puedes usar comillas simples, dobles o triples.
# Comillas simples
nombre = 'Juan'
# Comillas dobles
ciudad = "Madrid"
# Comillas triples (para múltiples líneas)
descripcion = """
Esto es un texto
que ocupa múltiples
líneas
"""
# String vacío
vacio = ""
Unir strings de diferentes formas.
# Forma 1: Con +
nombre = "Juan"
apellido = "Pérez"
nombre_completo = nombre + " " + apellido
print(nombre_completo) # Juan Pérez
# Forma 2: Con * (repetir)
estrella = "*"
linea = estrella * 10
print(linea) # **********
# Forma 3: f-strings (RECOMENDADO)
edad = 25
ciudad = "Barcelona"
mensaje = f"Tengo {edad} años y vivo en {ciudad}"
print(mensaje) # Tengo 25 años y vivo en Barcelona
# Forma 4: .format()
mensaje = "Hola {}, tienes {} años".format("Ana", 28)
print(mensaje) # Hola Ana, tienes 28 años
¡Consejo! Los f-strings son la forma moderna y más legible. Úsalos siempre que puedas.
Cada carácter tiene una posición. En Python, comienzan en 0.
texto = "Python"
# Acceder a caracteres individuales
print(texto[0]) # P (primer carácter)
print(texto[1]) # y
print(texto[5]) # n (último carácter)
# Índices negativos (desde el final)
print(texto[-1]) # n (último)
print(texto[-2]) # o (penúltimo)
# Longitud del string
print(len(texto)) # 6
Visualización:
P y t h o n
0 1 2 3 4 5 (índices positivos)
-6 -5 -4 -3 -2 -1 (índices negativos)
Extrae una parte del string.
texto = "Python es increíble"
# Desde índice 0 hasta 5 (sin incluir 5)
print(texto[0:6]) # Python
# Desde índice 7 hasta el final
print(texto[7:]) # es increíble
# Primeros 6 caracteres
print(texto[:6]) # Python
# Últimos 8 caracteres
print(texto[-8:]) # increíble
# Cada 2 caracteres
print(texto[::2]) # Pto sieíl
# Invertir string
print(texto[::-1]) # elbicerni se nohtyP
Los métodos son funciones que pertenecen al string. Se usan con un punto.
Convierte a mayúsculas o minúsculas.
texto = "Hola Mundo"
print(texto.upper()) # HOLA MUNDO
print(texto.lower()) # hola mundo
Capitaliza la primera letra o cada palabra.
texto = "hola mundo"
print(texto.capitalize()) # Hola mundo
print(texto.title()) # Hola Mundo
Elimina espacios en blanco.
texto = " Hola "
print(texto.strip()) # "Hola"
print(texto.lstrip()) # "Hola "
print(texto.rstrip()) # " Hola"
Reemplaza texto.
texto = "Amo Python"
print(texto.replace("Python", "JavaScript"))
# Amo JavaScript
Buscar información dentro del string.
Busca la posición de un substring.
texto = "Hola mundo"
print(texto.find("mundo")) # 5
print(texto.find("xyz")) # -1 (no encontrado)
Cuenta cuántas veces aparece un substring.
texto = "banana"
print(texto.count("a")) # 3
print(texto.count("na")) # 2
Verifica si comienza o termina con algo.
texto = "python.py"
print(texto.startswith("python")) # True
print(texto.endswith(".py")) # True
Verifica si un substring existe.
texto = "Hola mundo"
print("mundo" in texto) # True
print("xyz" not in texto) # True
Dividir strings en partes.
# split() - Divide por un separador
texto = "Juan,Ana,Pedro,María"
nombres = texto.split(",")
print(nombres) # ['Juan', 'Ana', 'Pedro', 'María']
# join() - Une elementos con un separador
nombres = ["Juan", "Ana", "Pedro"]
resultado = ", ".join(nombres)
print(resultado) # Juan, Ana, Pedro
# Dividir por espacios (por defecto)
frase = "Hola mundo Python"
palabras = frase.split()
print(palabras) # ['Hola', 'mundo', 'Python']
Métodos para verificar qué contiene el string.
texto1 = "12345"
texto2 = "abcde"
texto3 = "Hola123"
# isdigit() - Solo dígitos
print(texto1.isdigit()) # True
print(texto3.isdigit()) # False
# isalpha() - Solo letras
print(texto2.isalpha()) # True
print(texto3.isalpha()) # False
# isalnum() - Letras y números
print(texto3.isalnum()) # True
# isspace() - Solo espacios
print(" ".isspace()) # True
Usa métodos de strings para validar un email.
email = input("Ingresa tu email: ")
# Validaciones básicas
if "@" in email and "." in email:
if email.count("@") == 1:
partes = email.split("@")
usuario = partes[0]
dominio = partes[1]
if len(usuario) > 0 and len(dominio) > 0:
print("✓ Email válido")
else:
print("✗ Email inválido")
else:
print("✗ Email inválido (múltiples @)")
else:
print("✗ Email inválido (falta @ o .)")
Procesa datos separados por comas.
# Datos en formato CSV
datos = "Juan,25,Madrid"
# Dividir por comas
partes = datos.split(",")
nombre = partes[0].strip()
edad = partes[1].strip()
ciudad = partes[2].strip()
# Mostrar datos procesados
print(f"Nombre: {nombre}")
print(f"Edad: {edad}")
print(f"Ciudad: {ciudad}")
Usa Online Python para hacer estos ejercicios: