Módulo BASICOLección 04 de 12

Strings y f-strings

Indexa, corta y transforma texto; formatea con f-strings.

01

Teoría y Fundamentos

Lee y asimila los conceptos clave antes de evaluar

Un string (str) es una secuencia de caracteres. En Python se escribe entre comillas simples o dobles — las dos son equivalentes:

saludo = "hola"
despedida = 'chao'
cita = "Ella dijo 'hola'"   # comillas simples dentro de dobles

Indexación: cada carácter tiene posición

Los índices empiezan en 0:

palabra = "python"
#           012345  ← posición de cada letra

print(palabra[0])    # p
print(palabra[5])    # n
print(palabra[-1])   # n  → los negativos cuentan desde el final
print(palabra[-2])   # o

Si te pasas del rango, obtienes un error:

palabra[99]   # IndexError: fuera de rango

Slicing: cortar pedazos

La sintaxis [inicio:fin] extrae un rango — el fin no se incluye:

palabra = "programacion"

print(palabra[0:6])    # progra → posiciones 0 a 5
print(palabra[:6])     # progra → si omites el inicio, arranca en 0
print(palabra[6:])     # acion  → hasta el final
print(palabra[-4:])    # cion   → últimos 4 caracteres

Métodos de strings

Los strings vienen con utilidades incorporadas para transformar, limpiar, inspeccionar y estructurar texto.

1. Transformación de mayúsculas y minúsculas

texto = "hola mundo"

print(texto.upper())       # "HOLA MUNDO" → todo a mayúsculas
print(texto.lower())       # "hola mundo" → todo a minúsculas
print(texto.capitalize())  # "Hola mundo" → solo la primera letra en mayúscula
print(texto.title())       # "Hola Mundo" → primera letra de cada palabra
print(texto.swapcase())    # "HOLA MUNDO" invierte caja

2. Limpieza de espacios y caracteres (strip)

sucio = "   bienvenido a Python   \n"
print(sucio.strip())       # "bienvenido a Python" (limpia ambos lados)
print(sucio.lstrip())      # limpia solo a la izquierda
print(sucio.rstrip())      # limpia solo a la derecha
print("###alerta###".strip("#"))  # "alerta" (elimina caracteres específicos)

3. Búsqueda y conteo

frase = "aprendiendo python con python"

print(frase.count("python"))   # 2 → cuenta cuántas veces aparece
print(frase.find("python"))    # 12 → índice de la primera coincidencia (-1 si no existe)
print(frase.rfind("python"))   # 23 → índice de la última coincidencia
print(frase.index("python"))   # 12 → igual que find, pero lanza ValueError si no existe

4. Reemplazo y partición (split, join, replace)

# replace: sustituye subcadenas
mensaje = "Me gusta Java".replace("Java", "Python")
print(mensaje)  # "Me gusta Python"

# split: divide un string en una lista según un delimitador
csv = "ana,pedro,carlos,luis"
nombres = csv.split(",")
print(nombres)  # ['ana', 'pedro', 'carlos', 'luis']

# join: une los elementos de una lista con un separador (¡el método pertenece al separador!)
unido = " - ".join(nombres)
print(unido)    # "ana - pedro - carlos - luis"

5. Validación y comprobación de contenido (devuelven bool)

print("python.py".startswith("py"))      # True → empieza por el prefijo
print("archivo.pdf".endswith(".pdf"))    # True → termina con el sufijo
print("12345".isdigit())                 # True → solo dígitos numéricos
print("Python".isalpha())                # True → solo caracteres alfabéticos
print("user_123".isalnum())              # False (el guion bajo no es alfanumérico)
print("   ".isspace())                   # True → solo espacios en blanco

Ojo: los strings son inmutables. Los métodos no modifican el original, devuelven uno nuevo:

texto = "hola"
texto.upper()      # Esto NO cambia texto
print(texto)       # hola
texto = texto.upper()  # Así sí: reasignas el resultado
print(texto)       # HOLA

f-strings: el formato moderno

Pon una f antes de las comillas y podrás insertar expresiones entre llaves:

nombre = "Ana"
edad = 25

print(f"Me llamo {nombre} y tengo {edad} años")
# Me llamo Ana y tengo 25 años

print(f"En 5 años tendré {edad + 5}")
# En 5 años tendré 30

pi = 3.14159265
print(f"Pi con 2 decimales: {pi:.2f}")
# Pi con 2 decimales: 3.14

Las f-strings son la forma recomendada de formatear texto en Python moderno. Olvídate de concatenar con + por todas partes.

Errores comunes

"2" + 2          # TypeError: no puedes sumar str + int
int("hola")      # ValueError: "hola" no es un número
"Hola"[5]        # IndexError: fuera de rango

Resumen

  • Los índices empiezan en 0; los negativos cuentan desde el final
  • [inicio:fin] corta sin incluir el fin
  • Los strings son inmutables: los métodos devuelven strings nuevos
  • Las f-strings (f"...{variable}...") son la forma moderna de formatear
  • len() mide la longitud de cualquier string

¿Terminaste de leer la teoría?

Marca este paso para registrar tu avance y saltar a las preguntas

02

Quiz de Comprobación

3 preguntas de comprensión rápida (requiere 70% para aprobar)

  1. 1

    ¿Qué devuelve "python"[0]?

  2. 2

    ¿Qué imprime print(f"2 + 2 = {2 + 2}")?

  3. 3

    ¿Qué devuelve "hola"[-1]?

03

Laboratorio de Código Python

2 ejercicios interactivos ejecutados en tu navegador

EJERCICIO 01Python 3.12

Transforma el texto

Dada `palabra = "python"`, imprime en mayúsculas y, en la misma línea, su longitud separados por espacio. Resultado esperado: PYTHON 6

ejercicio_1.py
Tab: 4 spaces

Iniciando editor de código…

Ctrl/Cmd + Enter para ejecutar
EJERCICIO 02Python 3.12

Slicing

Con `palabra = "programacion"`, guarda en `primera` los primeros 6 caracteres usando slicing (`palabra[:6]`) y en `ultima` el último carácter.

ejercicio_2.py
Tab: 4 spaces

Iniciando editor de código…

Ctrl/Cmd + Enter para ejecutar