English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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.
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
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.
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
Las cadenas de caracteres en Python pueden realizar muchas operaciones, lo que las haceEn PythonEl más comúnUno de los tipos de datos.
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'
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')
Podemos usar la palabra clave in para probar si una subcadena existe en una cadena.
>>> 'a' in 'program' True >>> 'at' not in 'battle' False
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))
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 | Descripción |
---|---|
\newline | La barra invertida y el salto de línea se ignoran |
\\ | Barra invertida |
\' | Comillas simples |
\" | Comillas dobles |
\a | Campana ASCII |
\b | Tecla de retroceso ASCII |
\f | Página de retorno ASCII |
\n | Salto de línea ASCII |
\r | Carro retorno ASCII |
\t | Tabulador horizontal ASCII |
\v | Tabulador vertical ASCII |
\ooo | de caracteres con valores octales |
\xHH | de 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
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
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|'
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
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'