MÓDULO 1: INICIO

Strings y Métodos

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.


1. Crear 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 = ""

2. Concatenación de Strings

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.


3. Acceder a Caracteres (Indexing)

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)
                

4. Slicing (Cortar Strings)

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

5. Métodos de Strings (Parte 1: Cambios)

Los métodos son funciones que pertenecen al string. Se usan con un punto.

upper() / lower()

Convierte a mayúsculas o minúsculas.

texto = "Hola Mundo"

print(texto.upper()) # HOLA MUNDO
print(texto.lower()) # hola mundo

capitalize() / title()

Capitaliza la primera letra o cada palabra.

texto = "hola mundo"

print(texto.capitalize()) # Hola mundo
print(texto.title()) # Hola Mundo

strip() / lstrip() / rstrip()

Elimina espacios en blanco.

texto = "   Hola   "

print(texto.strip()) # "Hola"
print(texto.lstrip()) # "Hola   "
print(texto.rstrip()) # "   Hola"

replace()

Reemplaza texto.

texto = "Amo Python"

print(texto.replace("Python", "JavaScript"))
# Amo JavaScript

6. Métodos de Strings (Parte 2: Búsqueda)

Buscar información dentro del string.

find() / index()

Busca la posición de un substring.

texto = "Hola mundo"

print(texto.find("mundo")) # 5
print(texto.find("xyz")) # -1 (no encontrado)

count()

Cuenta cuántas veces aparece un substring.

texto = "banana"

print(texto.count("a")) # 3
print(texto.count("na")) # 2

startswith() / endswith()

Verifica si comienza o termina con algo.

texto = "python.py"

print(texto.startswith("python")) # True
print(texto.endswith(".py")) # True

in / not in

Verifica si un substring existe.

texto = "Hola mundo"

print("mundo" in texto) # True
print("xyz" not in texto) # True

7. Métodos de Strings (Parte 3: División)

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']

8. Verificar Tipos de Caracteres

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

9. Caso Práctico: Validador de Email

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 .)")

10. Caso Práctico: Procesar Datos CSV

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}")

🛠️ Tu Misión

Usa Online Python para hacer estos ejercicios:

  1. Crea un string y accede a caracteres individuales usando índices positivos y negativos.
  2. Usa slicing para extraer la primera mitad, segunda mitad e invertir un string.
  3. Convierte un string a mayúsculas y minúsculas.
  4. Crea un programa que pida un nombre y lo muestre con cada palabra capitalizada.
  5. Busca la posición de una palabra dentro de un texto.
  6. Reemplaza palabras en un texto.
  7. Divide un string de nombres separados por comas y muestra cada nombre.
  8. Verifica si un string contiene solo números, solo letras, o ambos.
  9. Crea un validador de email simple.
  10. Bonus: Crea un programa que pida una frase y cuente cuántas veces aparece cada letra.