Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Dominando cadenas en Python: Creación, acceso y manipulación

Las cadenas están entre los tipos más populares en Python. Se crean simplemente encerrando caracteres entre comillas. Python trata comillas simples igual que dobles. Crear cadenas es tan simple como asignar un valor a una variable. Por ejemplo:

var1 = '¡Hola Mundo!'
var2 = "Programación Python"

Acceso a valores en cadenas

Python no soporta tipo carácter; se tratan como cadenas de longitud uno, también consideradas subcadenas.

Para acceder a subcadenas, usa corchetes para rebanado con índice o índices. Por ejemplo:

Demo en vivo
#!/usr/bin/python
var1 = '¡Hola Mundo!'
var2 = "Programación Python"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

Resultado:

var1[0]: H
var2[1:5]: ytho

Actualización de cadenas

Puedes "actualizar" una cadena existente reasignando una variable a otra cadena. El nuevo valor puede relacionarse con el anterior o ser completamente diferente. Por ejemplo:

Demo en vivo
#!/usr/bin/python
var1 = '¡Hola Mundo!'
print "Cadena actualizada: ", var1[:6] + 'Python'

Resultado:

Cadena actualizada: ¡Hola Python

Caracteres de escape

Lista de caracteres de escape o no imprimibles con notación de barra invertida:

Notación barra invertidaCarácter hexadecimalDescripción
\a0x07Campana o alerta
\b0x08Retroceso
\cx Control-x
\C-x Control-x
\e0x1bEscape
\f0x0cAvance de página
\M-\C-x Meta-Control-x
\n0x0aNueva línea
\nnn Notación octal, n en rango 0-7
\r0x0dRetorno de carro
\s0x20Espacio
\t0x09Tabulador
\v0x0bTabulador vertical
\x Carácter x
\xnn Notación hexadecimal, n en 0-9, a-f, A-F

Operadores especiales de cadena

Asumiendo variable a = 'Hola' y b = 'Python':

OperadorDescripciónEjemplo
+Concatenación - Une valores a ambos lados.a + b = HolaPython
*Repetición - Crea nuevas cadenas concatenando copias.a*2 = HolaHola
[]Rebanado - Carácter en índice dado.a[1] = o
[:]Rango de rebanado - Caracteres en rango dado.a[1:4] = ola
inPertenencia - Verdadero si carácter existe en cadena.H in a = 1
not inPertenencia - Verdadero si carácter NO existe.M not in a = 1
r/RCadena raw - Suprime significado real de escapes. Sintaxis: r"cadena" o R"cadena".print r'\n' imprime \n
%Formato - Formateo de cadenas.Ver siguiente sección

Operador de formateo de cadenas

Una de las características más geniales de Python es el operador de formato %. Es único para cadenas y compensa la falta de funciones como printf() de C. Ejemplo simple:

Demo en vivo
#!/usr/bin/python
print "Mi nombre es %s y peso %d kg!" % ('Zara', 21)

Resultado:

Mi nombre es Zara y peso 21 kg!

Lista completa de símbolos para usar con %:

Símbolo de formatoConversión
%ccarácter
%sconversión de cadena via str()
%ientero decimal con signo
%dentero decimal con signo
%uentero decimal sin signo
%oentero octal
%xentero hexadecimal (minúsculas)
%Xentero hexadecimal (MAYÚSCULAS)
%enotación exponencial (minúscula 'e')
%Enotación exponencial (MAYÚSCULA 'E')
%fnúmero real de punto flotante
%gel más corto de %f y %e
%Gel más corto de %f y %E

Otros símbolos y funcionalidades soportadas:

SímboloFuncionalidad
*argumento especifica ancho o precisión
-justificación izquierda
+mostrar signo
<sp>espacio en blanco antes de número positivo
#añade cero inicial octal o 0x/0X hexadecimal
0rellenar izquierda con ceros (en vez de espacios)
%'%%' deja un '%' literal
(var)variable de mapeo (argumentos diccionario)
m.nm ancho mínimo total, n dígitos después del punto decimal

Comillas triples

Las comillas triples de Python permiten cadenas que abarcan múltiples líneas, incluyendo NEWLINEs, TABs y caracteres especiales verbatim.

La sintaxis son tres comillas simples o dobles consecutivas.

Demo en vivo
#!/usr/bin/python
cadena_larga = """esta es una cadena larga
compuesta por varias líneas
y caracteres no imprimibles como TAB ( \t )
se mostrarán tal cual.
NEWLINEs explícitos como [ \n ] o solo NEWLINE
en la asignación también se muestran."""
print cadena_larga

Resultado (cada carácter especial convertido a su forma impresa):

esta es una cadena larga
compuesta por varias líneas
y caracteres no imprimibles como TAB ( ) 
se mostrarán tal cual.
NEWLINEs explícitos como [ ] o solo NEWLINE
en la asignación también se muestran.

Las cadenas raw no tratan la barra invertida como especial. Cada carácter se queda tal como lo escribiste:

Demo en vivo
#!/usr/bin/python
print 'C:\\nada'

Resultado:

C:\nada

Usando cadena raw con r'expresión':

Demo en vivo
#!/usr/bin/python
print r'C:\\nada'

Resultado:

C:\\nada

Cadenas Unicode

Las cadenas normales en Python se almacenan internamente como ASCII de 8 bits, mientras que las Unicode se almacenan como Unicode de 16 bits. Esto permite un conjunto más variado de caracteres, incluyendo caracteres especiales de la mayoría de idiomas.

Demo en vivo
#!/usr/bin/python
print u'¡Hola, mundo!'

Resultado:

¡Hola, mundo!

Las cadenas Unicode usan prefijo u, igual que raw usan prefijo r.

Métodos integrados de cadena

Python incluye los siguientes métodos integrados para manipular cadenas:

NºMétodos con descripción
1capitalize() - Primera letra en mayúscula.
2center(width, fillchar) - Cadena centrada con relleno de espacios.
3count(str, beg=0, end=len(string)) - Cuenta ocurrencias de str.
4decode(encoding='UTF-8', errors='strict') - Decodifica usando codec.
5encode(encoding='UTF-8', errors='strict') - Codifica cadena.
6endswith(suffix, beg=0, end=len(string)) - Verifica sufijo.
7expandtabs(tabsize=8) - Expande tabs a espacios.
8find(str, beg=0, end=len(string)) - Busca str, devuelve índice o -1.
9index(str, beg=0, end=len(string)) - Como find(), pero lanza excepción si no encuentra.
10isalnum() - Verdadero si al menos 1 carácter y todos alfanuméricos.
11isalpha() - Verdadero si al menos 1 carácter y todos alfabéticos.
12isdigit() - Verdadero si solo dígitos.
13islower() - Verdadero si al menos 1 carácter con caja y todos minúsculas.
14isnumeric() - Verdadero si unicode solo numérico.
15isspace() - Verdadero si solo espacios en blanco.
16istitle() - Verdadero si "titlecased" correctamente.
17isupper() - Verdadero si al menos 1 carácter con caja y todos mayúsculas.
18join(seq) - Une representaciones de elementos en seq con separador.
19len(string) - Longitud de la cadena.
20ljust(width[, fillchar]) - Cadena justificada izquierda con relleno.
21lower() - Convierte mayúsculas a minúsculas.
22lstrip() - Elimina espacios iniciales.
23maketrans() - Tabla de traducción para translate().
24max(str) - Carácter alfabético máximo.
25min(str) - Carácter alfabético mínimo.
26replace(old, new[, max]) - Reemplaza old por new.
27rfind(str, beg=0, end=len(string)) - Busca hacia atrás.
28rindex(str, beg=0, end=len(string)) - Como index() pero hacia atrás.
29rjust(width[, fillchar]) - Justificada derecha con relleno.
30rstrip() - Elimina espacios finales.
31split(str="", num=string.count(str)) - Divide por delimitador.
32splitlines(num=string.count('\n')) - Divide en líneas.
33startswith(str, beg=0, end=len(string)) - Verifica prefijo.
34strip([chars]) - lstrip() y rstrip() combinados.
35swapcase() - Invierte mayúsculas/minúsculas.
36title() - Versión "titlecased": palabras inician mayúscula.
37translate(table, deletechars="") - Traduce según tabla.
38upper() - Convierte minúsculas a mayúsculas.
39zfill(width) - Rellena izquierda con ceros.
40isdecimal() - Verdadero si unicode solo decimales.

python

  1. Dominando strings en C#: Fundamentos, operaciones y técnicas avanzadas
  2. Dominando operadores en Python: Guía completa
  3. Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas
  4. Domine las Operaciones de Strings en Python: Replace, Join, Split, Reverse y Conversión de Mayúsculas/Minúsculas
  5. Domine el Método strip() de Python: Guía Completa y Ejemplos Prácticos
  6. Domine str.count() en Python: Cómo Contar Caracteres y Subcadenas con Ejemplos
  7. Domine el Formateo de Strings en Python con format(): Ejemplos Claros
  8. Python len(): Guía Práctica para Medir Longitud de Objetos
  9. Domine el Método String.find() en Python: Sintaxis, Ejemplos y Alternativas
  10. Dominando enumerate() en Python: bucles con índices para listas, tuplas, cadenas y diccionarios
  11. Dominar Strings en Java: Creación, Métodos y Mejores Prácticas