English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de Python

Control de flujo de Python

Funciones en Python

Tipos de datos en Python

Operaciones de archivos de Python

Objetos y clases de Python

Fecha y hora de Python

Conocimientos avanzados de Python

Manual de referencia de Python

Cadenas (String) en Python

En este tutorial, aprenderá a crear, formatear, modificar y eliminar cadenas en Python. Además, también se le presentarán varias operaciones de cadenas y funciones.

¿Qué es una cadena en Python?

Las cadenas son secuencias de caracteres.

Un carácter es solo un símbolo. Por ejemplo, el inglés tiene26caracteres.

Las computadoras no procesan caracteres, procesan números (binarios). Incluso si ve caracteres en la pantalla, internamente se almacenan y manipulan como 0 y 11de la combinación.

Esta conversión de caracteres a números se llama codificación, y el proceso inverso se llama decodificación. ASCII y Unicode son algunos de los codecs más comunes.

En Python, las cadenas son secuencias de caracteres Unicode. La introducción de Unicode incluye todos los caracteres de todos los idiomas y trae una codificación unificada. Puede encontrar más información aquíConozca más sobre Unicode.

¿Cómo se crea una cadena en Python?

Se puede crear una cadena poniendo los caracteres entre comillas simples o dobles. Python incluso puede usar comillas triples, pero generalmente se utiliza para representar cadenas de múltiples líneas y cadenas de documentación.

# Todo lo siguiente es equivalente
my_string = 'Hello'
print(my_string)
my_string = "Hello"
print(my_string)
my_string = '''Hello'''
print(my_string)
# Las cadenas de triple comilla pueden extenderse en múltiples líneas
my_string = "Hello, bienvenido a
           el mundo de Python"
print(my_string)

Al ejecutar el programa, la salida es:

Hello
Hello
Hello
Hello, bienvenido a
           el mundo de Python

¿Cómo se accede a los caracteres en una cadena?

Podemos usar índices para acceder a caracteres individuales y usar cortes para acceder a una serie de caracteres. Los índices comienzan en 0. Intentar acceder a caracteres fuera del rango de índices lanzará un error IndexError. Los índices deben ser enteros. No podemos usar float u otros tipos, lo que causará un TypeError.

Python permite la indexación negativa en sus secuencias.

índice-1representa el último elemento-2representa el segundo último elemento, y así sucesivamente. Podemos usar el operador de cortado (punto y coma) para acceder a una serie de elementos en una cadena.

str = 'oldtoolbag.com
print('str = ', str)
# Primer carácter
print('str[0] = ', str[0])
# Último carácter
print('str[-1] = '', str[-1]
# Cortar el segundo al quinto carácter
print('str[1:5] = '', str[1:5]
# Cortar desde la posición6caracteres a la posición2caracter
print('str[5:-2] = '', str[5:-2]

Resultados de salida:

str = ''3codebox.com
str[0] = ''
str[-1] = ''
str[1:5] = ''
str[5:-2] = ''

Si intenta acceder a un índice fuera de rango o usar un número decimal, se producirá un error.

# El índice debe estar dentro del rango
>>> my_string[15]  
...
IndexError: el índice de cadena está fuera de rango
# Los índices deben ser enteros
>>> my_string[1.5] 
...
TypeError: los índices de cadena deben ser enteros

Considerando que los índices están entre los elementos, se puede visualizar mejor el cortado como se muestra a continuación.

Para acceder a un rango, se necesita un índice, que cortará una parte de la cadena.

¿Cómo cambiar o eliminar una cadena?

Las cadenas de caracteres son inmutables. Esto significa que una vez asignados, los elementos de la cadena no pueden cambiarse. Podemos simplemente asignar diferentes cadenas de caracteres al mismo nombre.

>>> my_string = 'oldtoolbag.com
>>> my_string[5] = 'a'
...
TypeError: el objeto 'str' no admite la asignación de elementos
>>> my_string = 'Python'
>>> my_string
'Python'

No podemos eliminar o eliminar caracteres de una cadena. Pero podemos eliminar completamente la cadena usando la palabra clave del.

>>> del my_string[1]
...
TypeError: el objeto 'str' no admite la eliminación de elementos
>>> del my_string
>>> my_string
...
NameError: el nombre 'my_string' no está definido

Operaciones de cadenas de caracteres en Python

Las cadenas de caracteres en Python pueden realizar muchas operaciones, lo que las haceEn PythonEl más comúnUno de los tipos de datos.

La concatenación de dos o más cadenas de caracteres

Conectar dos o más cadenas en una única cadena se llama concatenación.

+ Los operadores realizan operaciones de concatenación en Python. Simplemente escribir dos cadenas de texto juntas, también se pueden concatenar.

* Los operadores se pueden usar para repetir una cadena una cantidad específica de veces.

str1 = 'Hello'
str2 ='World!'
# using +
print('str1 + str2 = ', str1 + str2)
# using *
print('str1 * 3 =', str1 * 3)

Escribir dos cadenas de texto juntas también se verá como+Operadores que los unen juntos.

Si queremos concatenar cadenas en diferentes líneas, podemos usar paréntesis.

>>> # Dos cadenas de texto juntas
>>> 'Hello ''World!'
'Hello World!'
>>> # Usar paréntesis
>>> s = ('Hello '
...          'World')
>>> s
'Hello World'

Recorrer una cadena

UsarBucle forPodemos recorrer una cadena. Este es un ejemplo de calcular el número de 'l' en una cadena.

count = 0
for letter in 'Hello World':
    if(letter == 'l'):
        count += 1
print(count, 'letras encontradas')

Pruebas de membresía de cadena

Podemos usar la palabra clave in para probar si una subcadena existe en una cadena.

>>> 'a' in 'program'
True
>>> 'at' not in 'battle'
False

Usar funciones integradas de Python

Se pueden usar varias funciones integradas de sequence y string.

Algunos comunes son enumerate() y len(). La función enumerate() tiene como objetivo: devolver un objeto de enumeración. Contiene en forma de par el índice y el valor de todos los elementos de la cadena. Esto es útil para la iteración.

Asimismo, len() devuelve la longitud de la cadena (número de caracteres).

str = 'cold'
#enumerate()
list_enumerate = list(enumerate(str))
print('list(enumerate(str) = ', list_enumerate)
#Número de caracteres
print('len(str) = ', len(str))

Formato de cadena de Python

Secuencias de escape

Si queremos imprimir un texto-Él dijo: “¿Qué hay allí?”-No podemos usar comillas simples o dobles. Esto causará SyntaxError el texto en sí mismo contiene comillas simples y dobles.

>>> imprimir("Él dijo, \
...
SyntaxError: sintaxis no válida
>>> imprimir('Él dijo, \
...
SyntaxError: sintaxis no válida

Una solución para esto es usar comillas triples. Además, podemos usar secuencias de escape.

Las secuencias de escape comienzan con una barra invertida y se interpretan de diferentes maneras. Si usamos comillas simples para una cadena, debemos escapar todas las comillas simples dentro de la cadena. Lo mismo ocurre con las comillas dobles. Este es el método para representar el texto anterior.

# Uso de tres comillas simples
print('''Él dijo, \
# Secuencias de escape de comillas simples
print('Él dijo, \
# Secuencias de escape de comillas dobles
print("Él dijo, \"¿Qué hay aquí?\"")

Esta es una lista de todas las secuencias de escape que admite Python.

Secuencias de escape en Python
Secuencias de escapeDescripción
\newlineLa barra invertida y el salto de línea se ignoran
\\Barra invertida
\'Comillas simples
\"Comillas dobles
\aCampana ASCII
\bTecla de retroceso ASCII
\fPágina de retorno ASCII
\nSalto de línea ASCII
\rCarro retorno ASCII
\tTabulador horizontal ASCII
\vTabulador vertical ASCII
\ooode caracteres con valores octales
\xHHde caracteres con valores hexadecimales HH

Aquí hay algunos ejemplos

>>> imprimir("C:\\Python32\\Lib)
C:\\Python32\Lib
>>> imprimir("Esto se imprime\nin dos líneas")
Esto se imprime
en dos líneas
>>> imprimir("Esto es un \x48\x45\x58 representación)
Esto es una representación HEX

Cadena original ignora secuencias de escape

A veces, podríamos desear ignorar las secuencias de escape en una cadena. Para esto, podemos colocarla delante de una cadena original r o R. Esto significa que es una cadena original y cualquier secuencia de escape será ignorada.

>>> imprimir("Esto es un \x61 un buen ejemplo))
Esto es un
buen ejemplo
>>> imprimir(r"Esto es un \x61 un buen ejemplo))
Esto es un \x61 un buen ejemplo

Formatear cadenas usando el método format()

El método format() utilizado con objetos string es muy versátil y muy potente en la formateo de cadenas. La cadena de formato contiene corchetes {} como marcadores de posición o campos de reemplazo.

Podemos usar parámetros posicionales o de palabra clave para especificar el orden.

# Ordenación implícita (por defecto)
default_order = "{}, {} y {}".format('John','Bill','Sean')
print('\n--- Orden Por Defecto ---)
print(default_order)
# Ordenamiento usando parámetros posicionales
positional_order = "{1, {0} y {2}".format('John','Bill','Sean')
print('\n--- Orden Posicional ---)
print(positional_order)
# Ordenamiento usando parámetros de palabra clave
keyword_order = "{s}, {b} y {j}".format(j='John',b='Bill',s='Sean')
print('\n--- Orden de Palabras Clave ---)
print(keyword_order)

El método format() puede tener especificaciones de formato opcionales. Utilizan dos puntos para separarse del nombre del campo. Por ejemplo, podemos alinear a la izquierda <, a la derecha > o centrar ^ la cadena en el espacio dado. También podemos formatear enteros en binario, hexadecimal, etc., y números de coma flotante pueden redondearse o mostrarse en formato exponencial. Se pueden usar muchos formatos. Visite aquí paraObtener el format()métodoslosTodosFormato de cadena.

>>> # Formateo de enteros
>>> "Representación binaria de {0} es {0:b}".format(12)
"Representación binaria de 12 es 1100'
>>> # Formateo de números de coma flotante
>>> "Representación exponencial: {0:e}".format(1566.345)
"Representación exponencial: 1.566345e+03"
>>> # Redondeo
>>> "Tercio uno es: {0:.3f}".format(1/3)
"Tercio uno es: 0.333"
>>> # Alineación de cadena
>>> "|{:<10|{:^10|{:}>10|".format('butter','bread','ham')
'|butter    |    bread    |        jam|'

Formateo de estilo antiguo

Incluso podemos formatear cadenas como lo hacía sprintf() en el lenguaje de programación C. Usamos el operador % para completar esta tarea.

>>> x = 12.3456789
>>> print('El valor de x es %',3.2f' %x)
El valor de x es 12.35
>>> print('El valor de x es %',3.4f' %x)
El valor de x es 12.3457

Métodos de cadena comunes en Python

Los objetos de cadena tienen muchos métodos disponibles. El método format() mencionado anteriormente es uno de ellos. Los métodos comunes incluyen lower(), upper(), join(), split(), find(), replace(), etc. Aquí está la lista completaMétodos integrados para manejar cadenas en Python.

>>> "w3codebox.lower()
'w3codebox
>>> "w3codebox.upper()
'w3codebox
>>> "Esta cadena dividirá todas las palabras en una lista".split()
['This', 'will', 'split', 'all', 'words', 'into', 'a', 'lista']
>>> ' '.join(['This', 'will', 'join', 'all', 'words', 'into', 'a', 'string'])
'Esta cadena unirá todas las palabras en una cadena'
>>> 'Happy New Year'.find('ew')
7
>>> 'Happy New Year'.replace('Happy','Brilliant')
'Brilliant New Year'