Módulo 1 · Lección 4 de 59
Métodos de cadenas
Las operaciones que toda cadena sabe hacer sobre sí misma: cambiar mayúsculas, limpiar espacios, buscar, reemplazar y partir en trozos.
Qué es un método#
Hasta ahora has usado funciones sueltas como len(texto). Un método es una función que pertenece a un dato concreto y se llama pegada a él con un punto:
texto = "python"
print(len(texto)) # función: el dato va dentro
print(texto.upper()) # método: el dato va delante del punto6
PYTHONLos paréntesis al final son obligatorios aunque estén vacíos: son los que dicen "ejecuta esto". Sin ellos, texto.upper no ejecuta nada.
Mayúsculas y minúsculas#
frase = "aprendiendo PYTHON desde cero"
print(frase.upper()) # TODO EN MAYÚSCULAS
print(frase.lower()) # todo en minúsculas
print(frase.capitalize()) # Solo la primera letra de la frase
print(frase.title()) # La Primera De Cada Palabra
print(frase.swapcase()) # invierte las que hayAPRENDIENDO PYTHON DESDE CERO
aprendiendo python desde cero
Aprendiendo python desde cero
Aprendiendo Python Desde Cero
APRENDIENDO python DESDE CEROLimpiar espacios#
Cuando un dato viene de un usuario o de un fichero, casi siempre trae espacios de más. strip() es probablemente el método que más usarás en tu vida:
entrada = " erwin@correo.com "
print("[" + entrada + "]")
print("[" + entrada.strip() + "]") # quita por los dos lados
print("[" + entrada.lstrip() + "]") # solo por la izquierda
print("[" + entrada.rstrip() + "]") # solo por la derecha[ erwin@correo.com ]
[erwin@correo.com]
[erwin@correo.com ]
[ erwin@correo.com]También puede quitar caracteres concretos, no solo espacios:
print("###importante###".strip("#"))importanteReemplazar#
frase = "Me gusta Java, Java es genial"
print(frase.replace("Java", "Python"))
print(frase.replace("Java", "Python", 1)) # solo la primera vez
print("902 123 456".replace(" ", "")) # quitar todos los espaciosMe gusta Python, Python es genial
Me gusta Python, Java es genial
902123456Reemplazar por la cadena vacía es la forma habitual de eliminar algo.
Partir y unir#
split() convierte una cadena en una lista de trozos. Las listas las veremos en detalle más adelante, pero este método aparece tan pronto que conviene conocerlo ya:
frase = "rojo,verde,azul"
colores = frase.split(",")
print(colores)
texto = "El gato duerme"
palabras = texto.split() # sin argumento, parte por espacios
print(palabras)
print(len(palabras))['rojo', 'verde', 'azul']
['El', 'gato', 'duerme']
3join() hace lo contrario: une una lista de textos en una sola cadena. Se escribe al revés de lo que uno espera, con el separador delante:
colores = ["rojo", "verde", "azul"]
print(", ".join(colores))
print(" - ".join(colores))
print("".join(colores))rojo, verde, azul
rojo - verde - azul
rojoverdeazulPreguntar por el contenido#
Estos métodos devuelven True o False y se usan muchísimo en condiciones:
print("python.pdf".endswith(".pdf"))
print("IMG_2024.jpg".startswith("IMG"))
print("12345".isdigit()) # ¿son todo dígitos?
print("Erwin".isalpha()) # ¿son todo letras?
print("erwin2".isalnum()) # ¿letras o dígitos?
print(" ".isspace()) # ¿solo espacios?
print("ERWIN".isupper())
print("erwin".islower())True
True
True
True
True
True
True
TrueAlinear y rellenar#
Útiles para sacar tablas ordenadas por la terminal:
print("Nombre".ljust(15) + "Edad") # alinea a la izquierda rellenando
print("Erwin".ljust(15) + "34")
print("Ana".ljust(15) + "28")
print()
print("total".rjust(20)) # alinea a la derecha
print("MENÚ".center(30, "=")) # centra rellenando con un carácter
print("7".zfill(3)) # rellena con ceros a la izquierdaNombre Edad
Erwin 34
Ana 28
total
=============MENÚ=============
007Encadenar métodos#
Como cada método devuelve una cadena, puedes llamar al siguiente sobre el resultado. Se lee de izquierda a derecha:
entrada = " ERWIN garcía "
limpio = entrada.strip().lower().title()
print(limpio)Erwin GarcíaTabla de referencia#
| Método | Qué hace |
|---|---|
upper() / lower() | Pasa todo a mayúsculas / minúsculas |
capitalize() / title() | Primera letra de la frase / de cada palabra |
strip() | Quita espacios de los extremos |
replace(viejo, nuevo) | Sustituye texto |
split(separador) | Parte en una lista |
join(lista) | Une una lista en un texto |
find(texto) | Posición donde empieza, o -1 |
count(texto) | Cuántas veces aparece |
startswith() / endswith() | Si empieza o acaba por algo |
isdigit() / isalpha() | Si son todo dígitos / letras |
ljust() / rjust() / center() | Alinear rellenando |