Manipulación de Cadenas

Caracteres de escape

Un carácter de escape se crea escribiendo una barra invertida \ seguida del carácter que desea insertar.

Carácter de escapeSe imprime como
\'Comilla simple
\"Comilla doble
\tTabulación
\nNueva línea (salto de línea)
\\Barra invertida
\bRetroceso
\oooValor octal
\rRetorno de carro
# Caracteres de escape: use barra invertida para insertar caracteres especiales
# \n = nueva línea, \' = comilla simple
print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.

Cadenas sin formato (Raw strings)

Una cadena sin formato ignora por completo todos los caracteres de escape e imprime cualquier barra invertida que aparezca en la cadena.

# Cadena sin formato (prefijo r): trata las barras invertidas como caracteres literales
print(r"Hello there!\nHow are you?\nI\'m doing fine.")  # \n impreso literalmente
Hello there!\nHow are you?\nI\'m doing fine.

Las cadenas sin formato se utilizan principalmente para la definición de expresiones regulares.

Quiz

Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje

¿Qué hace una cadena sin formato (precedida por r) en Python?
A. Convierte todos los caracteres a mayúsculas
B. Trata las barras invertidas como caracteres literales, ignorando las secuencias de escape
C. Elimina todos los espacios en blanco
D. Invierte la cadena

Cadenas Multilínea

print(
"""Dear Alice,

Eve's cat has been arrested for catnapping,
cat burglary, and extortion.

Sincerely,
Bob"""
)
Dear Alice,

Eve's cat has been arrested for catnapping,
cat burglary, and extortion.

Sincerely,
Bob

Indexación y Segmentación (Slicing) de cadenas

H   e   l   l   o       w   o   r   l   d    !
0   1   2   3   4   5   6   7   8   9   10   11

Indexación

# Indexación de cadenas: acceder a caracteres por posición (base 0)
spam = 'Hello world!'

spam[0]  # Devuelve el primer carácter: 'H'
'H'
spam[4]
'o'
spam[-1]
'!'

Segmentación (Slicing)

# Segmentación de cadenas: extraer subcadena usando la sintaxis [inicio:fin]
spam = 'Hello world!'

spam[0:5]  # Devuelve los caracteres del índice 0 al 4: 'Hello'
'Hello'
spam[:5]
'Hello'
spam[6:]
'world!'
spam[6:-1]
'world'
spam[:-1]
'Hello world'
spam[::-1]
'!dlrow olleH'
Quiz

Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje

¿Qué hace spam[::-1] a una cadena?
A. Devuelve el primer carácter
B. Devuelve el último carácter
C. Invierte la cadena
D. Elimina todos los caracteres
fizz = spam[0:5]
fizz
'Hello'

Los operadores in y not in

'Hello' in 'Hello World'
True
'Hello' in 'Hello'
True
'HELLO' in 'Hello World'
False
'' in 'spam'
True
'cats' not in 'cats and dogs'
False

upper(), lower() y title()

Transforman una cadena a mayúsculas, minúsculas y formato de título:

greet = 'Hello world!'
greet.upper()
'HELLO WORLD!'
greet.lower()
'hello world!'
greet.title()
'Hello World!'

Métodos isupper() e islower()

Devuelven True o False después de evaluar si una cadena está en mayúsculas o minúsculas:

spam = 'Hello world!'
spam.islower()
False
spam.isupper()
False
'HELLO'.isupper()
True
'abc12345'.islower()
True
'12345'.islower()
False
'12345'.isupper()
False

Los métodos isX de cadenas

MétodoDescripción
isalpha()devuelve True si la cadena consiste solo en letras.
isalnum()devuelve True si la cadena consiste solo en letras y números.
isdecimal()devuelve True si la cadena consiste solo en números.
isspace()devuelve True si la cadena consiste solo en espacios, tabulaciones y saltos de línea.
istitle()devuelve True si la cadena consiste solo en palabras que comienzan con una letra mayúscula seguida solo de caracteres en minúscula.

startswith() y endswith()

'Hello world!'.startswith('Hello')
True
'Hello world!'.endswith('world!')
True
'abc123'.startswith('abcdef')
False
'abc123'.endswith('12')
False
'Hello world!'.startswith('Hello world!')
True
'Hello world!'.endswith('Hello world!')
True
Quiz

Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje

¿Qué devuelve startswith()?
A. True si la cadena comienza con la subcadena especificada, False en caso contrario
B. La subcadena que coincide con el inicio
C. El índice donde comienza la subcadena
D. Una nueva cadena sin el prefijo

join() y split()

join()

El método join() toma todos los elementos de un iterable, como una lista, diccionario, tupla o conjunto, y los une en una cadena. También puede especificar un separador.

''.join(['My', 'name', 'is', 'Simon'])
'MynameisSimon'
', '.join(['cats', 'rats', 'bats'])
'cats, rats, bats'
' '.join(['My', 'name', 'is', 'Simon'])
'My name is Simon'
'ABC'.join(['My', 'name', 'is', 'Simon'])
'MyABCnameABCisABCSimon'

split()

El método split() divide una cadena en una lista. Por defecto, utilizará espacios en blanco para separar los elementos, pero también puede establecer otro carácter de su elección:

'My name is Simon'.split()
['My', 'name', 'is', 'Simon']
'MyABCnameABCisABCSimon'.split('ABC')
['My', 'name', 'is', 'Simon']
'My name is Simon'.split('m')
['My na', 'e is Si', 'on']
' My  name is  Simon'.split()
['My', 'name', 'is', 'Simon']
' My  name is  Simon'.split(' ')
['', 'My', '', 'name', 'is', '', 'Simon']
Quiz

Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje

¿Qué devuelve split() cuando se llama en una cadena?
A. Una cadena
B. Una lista de cadenas
C. Una tupla de cadenas
D. Un diccionario

Justificación de texto con rjust(), ljust() y center()

'Hello'.rjust(10)
'     Hello'
'Hello'.rjust(20)
'               Hello'
'Hello World'.rjust(20)
'         Hello World'
'Hello'.ljust(10)
'Hello     '
'Hello'.center(20)
'       Hello       '

Un segundo argumento opcional para rjust() y ljust() especificará un carácter de relleno aparte del carácter de espacio:

'Hello'.rjust(20, '*')
'***************Hello'
'Hello'.ljust(20, '-')
'Hello---------------'
'Hello'.center(20, '=')
'=======Hello========'

Eliminación de espacios en blanco con strip(), rstrip() y lstrip()

spam = '    Hello World     '
spam.strip()
'Hello World'
spam.lstrip()
'Hello World     '
spam.rstrip()
'    Hello World'
spam = 'SpamSpamBaconSpamEggsSpamSpam'
spam.strip('ampS')
'BaconSpamEggs'

El Método Count

Cuenta el número de ocurrencias de un carácter o subcadena dada en la cadena a la que se aplica. Opcionalmente se pueden proporcionar los índices de inicio y fin.

sentence = 'one sheep two sheep three sheep four'
sentence.count('sheep')
3
sentence.count('e')
9
# devuelve el recuento de 'e' después de 'one sh' es decir 6 caracteres desde el inicio de la cadena
sentence.count('e', 6)
8
sentence.count('e', 7)
7

Método Replace

Reemplaza todas las ocurrencias de una subcadena dada con otra subcadena. Opcionalmente se puede proporcionar un tercer argumento para limitar el número de reemplazos. Devuelve una nueva cadena.

text = "Hello, world!"
text.replace("world", "planet")
'Hello, planet!'
fruits = "apple, banana, cherry, apple"
fruits.replace("apple", "orange", 1)
'orange, banana, cherry, apple'
sentence = "I like apples, Apples are my favorite fruit"
sentence.replace("apples", "oranges")
'I like oranges, Apples are my favorite fruit'
Quiz

Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje

¿Qué devuelve el método replace()?
A. Modifica la cadena original
B. Devuelve None
C. Devuelve una nueva cadena con los reemplazos realizados
D. Devuelve una lista de cadenas reemplazadas

Enlaces relevantes