← Python EspañolChapter 07 of 13

Cadenas de Texto

## Objetivos de Aprendizaje - Dominar la creación y manipulación de cadenas - Entender los métodos de cadena - Aprender slicing y formateo - Trabajar con conceptos básicos de expresiones regulares ## Crear Cadenas ### Cadenas Básicas ```python simple = 'Hola' doble = "Hola" multi = """Esto es una cadena de varias líneas""" # Caracteres de escape ruta = "C:\\Users\\Nombre" nueva_linea = "Línea 1\nLínea 2" tab = "Col1\tCol2" ``` ### Cadenas Crudas ```python ruta = r"C:\Users\Nombre" # Backslashes no escapados ``` ### f-strings (Python 3.6+) ```python nombre = "Ana" edad = 30 print(f"Me llamo {nombre} y tengo {edad}") print(f"En 5 años: {edad + 5}") ``` ## Slicing de Cadenas ```python texto = "¡Hola, Mundo!" print(texto[0]) # ¡ print(texto[-1]) # ! print(texto[0:5]) # ¡Hola print(texto[7:12]) # Mundo print(texto[:5]) # ¡Hola print(texto[7:]) # Mundo! print(texto[::2]) # ¡oa ud! (cada otro char) print(texto[::-1]) # !odnuM ,aloH¡ (reversa) ``` ## Longitud de Cadena ```python texto = "Hola" print(len(texto)) # 5 ``` ## Métodos de Cadena ### Métodos de Mayúsculas/Minúsculas ```python texto = "¡Hola, Mundo!" print(texto.upper()) # ¡HOLA, MUNDO! print(texto.lower()) # ¡hola, mundo! print(texto.capitalize()) # ¡hola, mundo! print(texto.title()) # ¡Hola, Mundo! print(texto.swapcase()) # ¡hOLA, mUNDO! ``` ### Buscar y Encontrar ```python texto = "¡Hola, Mundo!" print(texto.find("Mundo")) # 7 (índice de primera coincidencia) print(texto.find("Python")) # -1 (no encontrado) print(texto.index("Mundo")) # 7 (lanza si no encontrado) print(texto.count("o")) # 2 (contar ocurrencias) print(texto.startswith("¡Hola")) # True print(texto.endswith("!")) # True ``` ### Strip y Limpiar ```python texto = " Hola " print(texto.strip()) # "Hola" (eliminar ambos extremos) print(texto.lstrip()) # "Hola " (eliminar izquierda) print(texto.rstrip()) # " Hola" (eliminar derecha) # Eliminar caracteres específicos texto = "...Hola..." print(texto.strip(".")) # "Hola" ``` ### Split y Join ```python texto = "manzana,plátano,cereza" print(texto.split(",")) # ['manzana', 'plátano', 'cereza'] print(texto.split(",", 1)) # ['manzana', 'plátano,cereza'] # Join palabras = ["manzana", "plátano", "cereza"] print(",".join(palabras)) # manzana,plátano,cereza print(" ".join(palabras)) # manzana plátano cereza print("\n".join(palabras)) # manzana\nplátano\ncereza ``` ### Reemplazar ```python texto = "¡Hola, Mundo!" print(texto.replace("Mundo", "Python")) # ¡Hola, Python! print(texto.replace("o", "0")) # ¡H0la, Mund0! # Reemplazar con conteo print(texto.replace("o", "0", 1)) # ¡H0la, Mundo! ``` ### Verificar Contenido ```python texto = "Hola123" print(texto.isalpha()) # False (tiene dígitos) print(texto.isdigit()) # False print(texto.isalnum()) # True (letras o dígitos) print(texto.isnumeric()) # False num = "12345" print(num.isdigit()) # True print(num.isnumeric()) # True mixto = "Hola Mundo" print(mixto.islower()) # False print(mixto.isupper()) # False print(mixto.istitle()) # True print(mixto.isspace()) # False ``` ## Formateo de Cadenas ### f-strings (Recomendado) ```python nombre = "Ana" edad = 30 pi = 3.14159 print(f"Nombre: {nombre}, Edad: {edad}") print(f"Pi: {pi:.2f}") # 3.14 print(f"Binario: {42:b}") # Binario: 101010 print(f"Hex: {255:02x}") # Hex: ff ``` ### Método format() ```python print("{} y {}".format("manzana", "plátano")) # manzana y plátano print("{1} y {0}".format("manzana", "plátano")) # plátano y manzana print("{nombre} tiene {edad}".format(nombre="Ana", edad=30)) print("{:>10}".format("derecha")) # " derecha" print("{:10}".format("izquierda")) # "izquierda " print("{:^10}".format("centro")) # " centro " print("{:*>10}".format("relleno")) # "*******relleno" ``` ### Operador % ```python nombre = "Ana" puntuacion = 85.5 print("Hola, %s" % nombre) # Hola, Ana print("%s obtuvo %.1f" % (nombre, puntuacion)) # Ana obtuvo 85.5 print("%d %f" % (42, 3.14)) # 42 3.140000 ``` ## Concatenación de Cadenas ```python # Con + primero = "Hola" segundo = "Mundo" print(primero + ", " + segundo) # Hola, Mundo # Con join partes = ["Hola", "Mundo"] print(", ".join(partes)) # Hola, Mundo # Con f-string print(f"{primero}, {segundo}") # Hola, Mundo # Repetir con * print("Ha" * 3) # HaHaHa ``` ## Comparación de Cadenas ```python print("manzana" == "manzana") # True print("manzana" == "Manzana") # False print("manzana" < "banana") # True (alfabético) print("a" < "A") # False (ASCII) ``` ## Cadena a Lista y Viceversa ```python # Cadena a lista texto = "hola" chars = list(texto) print(chars) # ['h', 'e', 'l', 'l', 'o'] # Lista a cadena chars = ['h', 'e', 'l', 'l', 'o'] print("".join(chars)) # hola ``` ## Naturaleza Inmutable Las cadenas son inmutables - no pueden cambiarse en su lugar: ```python texto = "Hola" # texto[0] = "J" # ¡TypeError! # En su lugar: texto = "J" + texto[1:] # Crea nueva cadena print(texto) # Jola ``` ## Patrones Comunes ### Verificar si Cadena Contiene Subcadena ```python texto = "¡Hola, Mundo!" if "Mundo" in texto: print("¡Encontrado!") if "Python" not in texto: print("No encontrado") ``` ### Eliminar Puntuación ```python import string texto = "¡Hola, Mundo! ¿Cómo estás?" limpio = texto.translate(str.maketrans("", "", string.punctuation)) print(limpio) # ¡Hola Mundo Cómo estás ``` ### Verificar si es Número ```python def es_numero(s): try: float(s) return True except ValueError: return False print(es_numero("123")) # True print(es_numero("12.3")) # True print(es_numero("abc")) # False ``` ## Resumen - Las cadenas son secuencias inmutables de caracteres - Usa f-strings para formateo (Python 3.6+) - Métodos clave: split(), join(), replace(), strip(), find(), upper(), lower() - Slicing con `[start:stop:step]` - `in` verifica membresía de subcadena - Las cadenas soportan indexación y slicing - Usa `join()` para combinar cadenas eficientemente

Comments

Comments powered by Giscus

To enable comments, add your Giscus embed code here.

Learn more about Giscus →