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 escape | Se imprime como |
|---|---|
\' | Comilla simple |
\" | Comilla doble |
\t | Tabulación |
\n | Nueva línea (salto de línea) |
\\ | Barra invertida |
\b | Retroceso |
\ooo | Valor octal |
\r | Retorno 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.
Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje
r) en Python?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'
Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje
spam[::-1] a una cadena?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étodo | Descripció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
Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje
startswith()?True si la cadena comienza con la subcadena especificada, False en caso contrariojoin() 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']
Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje
split() cuando se llama en una cadena?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'
Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje
replace()?None