Las cadenas de texto (también conocidas como strings) son secuencias de caracteres encerradas entre comillas simples o comillas dobles, y nos permiten almacenar y manipular texto en los programas. En Python, las cadenas son objetos inmutables, lo que significa que no se pueden modificar una vez creadas, pero podemos crear nuevas cadenas a partir de ellas con diferentes manipulaciones. Vamos a detallar a continuación la sintaxis básica relacionada con las cadenas, e incluiremos ejemplos prácticos.
Creación de cadenas
Podemos crear una cadena asignando un valor entre comillas (simples o dobles) a una variable:
mensaje = "Hola, Python!" nombre = 'María' direccion = "Calle San José, 123"
También podemos utilizar triples comillas (simples o dobles) para crear cadenas de varias líneas:
parrafo = """Este es un ejemplo de una cadena con varias líneas. Puedes usar triples comillas para ello."""
Operaciones con cadenas
Longitud de una cadena
Podemos obtener la longitud de una cadena utilizando la función len()
:
mensaje = "Hola, Python!" longitud = len(mensaje) # 13 (incluyendo espacios y signos de puntuación)
Concatenación
Podemos unir cadenas utilizando el operador +
:
saludo = "Hola, " nombre = "María" mensaje_completo = saludo + nombre # "Hola, María"
Repetición
Podemos repetir una cadena utilizando el operador *
:
cadena = "abc" repetida = cadena * 3 # "abcabcabc"
Indexación y segmentación
Las cadenas son secuencias de caracteres, lo que significa que podemos acceder a caracteres individuales utilizando índices y también podemos segmentar la cadena para obtener subcadenas:
texto = "Python es genial" primer_caracter = texto[0] # "P" (el primer carácter tiene índice 0) ultimo_caracter = texto[-1] # "l" (el último carácter tiene índice -1) segmento = texto[7:9] # "es" (segmento desde el índice 7 hasta el índice 8, no incluye el índice 9) # También puedes omitir el índice de inicio o de fin para segmentar desde el principio o hasta el final, respectivamente. inicio_omitiendo = texto[:6] # "Python" fin_omitiendo = texto[10:] # "genial"
Búsqueda en cadenas
Podemos buscar subcadenas dentro de una cadena utilizando los métodos find()
e index()
:
texto = "Python es un lenguaje de programación" posicion_find = texto.find("lenguaje") # 13 (posición de la primera ocurrencia) posicion_index = texto.index("lenguaje") # 13 (posición de la primera ocurrencia) # Si la subcadena no se encuentra, find() devuelve -1, mientras que index() genera una excepción ValueError. posicion_find_no_encontrada = texto.find("Java") # -1 posicion_index_no_encontrada = texto.index("Java") # ValueError: substring not found
Reemplazo y formato
Podemos reemplazar subcadenas en una cadena utilizando el método replace()
:
mensaje = "Hola, NAME!" nuevo_mensaje = mensaje.replace("NAME", "María") # "Hola, María!"
También podemos utilizar el método format()
para que la cadena incluya los valores de diferentes variables:
nombre = "Juan" edad = 30 saludo = "Hola, mi nombre es {} y tengo {} años.".format(nombre, edad) # "Hola, mi nombre es Juan y tengo 30 años."
Caracteres especiales
Python admite varios caracteres especiales que se pueden incluir en las cadenas, como por ejemplo:
\n
: Nueva línea.\t
: Tabulación.\'
: Comilla simple.\"
: Comilla doble.\\
: Barra invertida.
mensaje_multilinea = "Hola,\nPython!" print(mensaje_multilinea) # Salida: # Hola, # Python! mensaje_tabs = "Hola,\tPython!" print(mensaje_tabs) # Salida: Hola, Python! mensaje_comillas = "Ella dijo: \"Hola, Python!\"" print(mensaje_comillas) # Salida: Ella dijo: "Hola, Python!"
Métodos útiles para cadenas
Python incluye varios métodos para trabajar con cadenas. Algunos de los más útiles son:
texto = "Python es un lenguaje de programación" # Convertir a mayúsculas y minúsculas texto_mayusculas = texto.upper() # "PYTHON ES UN LENGUAJE DE PROGRAMACIÓN" texto_minusculas = texto.lower() # "python es un lenguaje de programación" # Capitalizar la primera letra de la cadena texto_capitalizado = texto.capitalize() # "Python es un lenguaje de programación" # Contar ocurrencias de una subcadena ocurrencias = texto.count("a") # 3 (número de veces que aparece "a" en la cadena) # Verificar si una cadena comienza o termina con una subcadena comienza_con = texto.startswith("Python") # True termina_con = texto.endswith("programación") # True # Separar una cadena en una lista de subcadenas por un carácter específico palabras = texto.split(" ") # ['Python', 'es', 'un', 'lenguaje', 'de', 'programación'] # Eliminar espacios en blanco al principio y al final de la cadena texto_limpio = " Hola, Python! " texto_sin_espacios = texto_limpio.strip() # "Hola, Python!"
F-strings
Las f-strings (o cadenas formateadas) nos proporcionan una forma muy legible para construir cadenas en Python (están disponibles a partir de la versión 3.6). Las f-strings nos permiten incorporar expresiones dentro de las cadenas, lo que facilita la inclusión de variables y otros valores en ellas sin tener que utilizar métodos de formato o concatenación. Para usar f-strings, simplemente debemos colocar una «f» o «F» antes del inicio de la cadena y luego añadimos las expresiones utilizando llaves {}
dentro de la cadena:
nombre = "Juan" edad = 30 # Usando f-string para formatear la cadena mensaje = f"Hola, mi nombre es {nombre} y tengo {edad} años." print(mensaje) # Salida: "Hola, mi nombre es Juan y tengo 30 años."
Las expresiones dentro de las llaves serán evaluadas y su valor se incluirá en la cadena final. Se puede incluir cualquier tipo de expresión válida dentro de las llaves, como operaciones matemáticas, llamadas a funciones, y más:
a = 10 b = 5 # Operaciones matemáticas dentro de una f-string resultado = f"La suma de {a} y {b} es {a + b}, y el producto es {a * b}." print(resultado) # Salida: "La suma de 10 y 5 es 15, y el producto es 50."
También se puede aplicar formato a las expresiones dentro de las llaves. Por ejemplo, podemos especificar la cantidad de decimales para un número flotante o el ancho para un número entero:
precio = 9.99 # Formato de número flotante dentro de una f-string mensaje_precio = f"El precio es: ${precio:.2f}" print(mensaje_precio) # Salida: "El precio es: $9.99" cantidad = 100 # Formato de número entero dentro de una f-string mensaje_cantidad = f"La cantidad es: {cantidad:05d}" print(mensaje_cantidad) # Salida: "La cantidad es: 00100"
En el ejemplo anterior, :.2f
indica que queremos mostrar el número flotante con dos decimales, mientras que :05d
indica que queremos que el número entero tenga un ancho de 5 dígitos, rellenando con ceros a la izquierda si es necesario.
Test
Evalúa tus conocimientos mediante este test que incluye preguntas relacionadas con esta unidad.