Manipulación de cadenas en python

Al programar, a menudo se usan cadenas. Una cadena en python es una serie de caracteres encerrados entre comillas simples, dobles o triples. Python 3 define las cadenas como «tipos de secuencia de texto». Puede usar la función integrada para convertir otros tipos en cadenas. str() Trabaja.

¡Comencemos aprendiendo las diferentes formas de crear cadenas!

Crear una cadena en python

A continuación se muestra un ejemplo de creación de un canal.

name=»Mike» first_name=»Mike» last_name = «Driscoll» triple = «»»multi-line string»»»

Si usa comillas triples, puede usar tres comillas dobles o tres comillas simples al principio y al final de la cadena. También tenga en cuenta que puede usar comillas triples para crear cadenas de varias líneas. También incluye espacios en la cadena.

Aquí hay un ejemplo de cómo convertir un número entero a una cadena.

>>> number = 5
>>> str(number)
'5'

En Python, puede usar barras invertidas para crear secuencias de escape. He aquí algunos ejemplos:

  • b -Retroceso
  • n – nueva línea
  • r -Retorno de carro ASCII
  • t – Etiqueta

Puede obtener más información leyendo la documentación de Python.

También puede usar barras invertidas para escapar de las comillas.

>>> 'This string has a single quote, ', in the middle'
"This string has a single quote, ', in the middle"

Si el código anterior no tiene barras invertidas, SyntaxError:

>>> 'This string has a single quote, ', in the middle'
Traceback (most recent call last):
  Python Shell, prompt 59, line 1
invalid syntax: <string>, line 1, pos 38

Esto sucede porque la cadena termina con una segunda comilla simple. Para evitar este problema, generalmente se recomienda mezclar comillas simples y dobles.

>>> "This string has a single quote, ', in the middle"
"This string has a single quote, ', in the middle"

En este caso, cree la cadena con comillas dobles y póngale comillas simples. Esto es especialmente útil cuando se trata de contracciones como «no» o «no puedo».

Ahora veamos los métodos que se pueden usar con cadenas.

Método de cadena en python

En Python, todo es un objeto. Verá su utilidad en el Capítulo 18 cuando aprenda más sobre la introspección. Ahora observe que las cadenas en python tienen métodos (o funciones) que se pueden llamar.

Aquí hay tres ejemplos:

>>> name="mike"
>>> name.capitalize()
'Mike'
>>> name.upper()
'MIKE'
>>> 'MIke'.lower()
'mike'

Los nombres de los métodos nos dan pistas sobre lo que hacen. Por ejemplo, .capitalize() Cambie la primera letra de la cadena a mayúsculas.

Puede usar las funciones integradas de Python para obtener una lista completa de métodos y propiedades accesibles dir() Trabaja:

>>> dir(name)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__',
'__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize',
'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index',
'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable',
'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace',
'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip',
'swapcase', 'title', 'translate', 'upper', 'zfill']

El primer tercio de la lista es un método especial, a veces llamado el «método de la caspa» (también conocido como el método de doble guión bajo) o el «método mágico». Estos se usan más comúnmente en casos de uso intermedios y avanzados y pueden ignorarse por ahora. Los elementos de la lista anterior que no tienen un doble guión bajo al principio son probablemente los elementos más utilizados.

Lo encontrarás .strip() cuando .split() Los métodos son particularmente útiles al analizar o manipular texto.

Puedo usar .strip() y sus variantes, .rstrip() cuando .lstrip() Elimine espacios de cadenas como tabulaciones y saltos de línea. Esto es especialmente útil cuando se leen archivos de texto que necesitan ser analizados.

De hecho, después de eliminar los caracteres de final de línea de la cadena, .split() Acerca del resultado del análisis de subcadenas.

Hagamos un pequeño ejercicio para aprender a analizar la segunda palabra de una cadena.

Primero, la cadena se ve así.

>>> my_string = 'This is a string of words'
'This is a string of words'

Para obtener parte de una cadena, puede llamarla así: .split()así:

>>> my_string.split()
['This', 'is', 'a', 'string', 'of', 'words']

El resultado es list un montón. Por lo general, asigna este resultado a una variable, pero para fines de demostración, puede omitir esta parte.

En su lugar, sabemos que el resultado es una cadena, por lo que podemos usar la división de listas para obtener el segundo elemento.

>>> 'This is a string of words'.split()[1]
'is'

Tenga en cuenta que en Python, los elementos de la lista comienzan en 0 (cero), por lo que si especifica que se requiere el elemento 1 (1), será el segundo elemento de la lista.

Al analizar cadenas para el trabajo, personalmente he descubierto que es posible usar .strip() cuando .split() Una forma de obtener casi todos los datos que necesita. A veces necesita usar expresiones regulares (regex), pero en la mayoría de los casos estos dos métodos serán suficientes.

Formato de cadena en python

El formateo de cadenas en python o la sustitución de cadenas consiste en insertar una cadena en otra cadena. Esto es particularmente útil si necesita crear plantillas como cartas modelo. Sin embargo, a menudo usa la sustitución de cadenas para depurar la salida, la salida a la salida estándar, etc.

Python tiene tres formas diferentes de implementar el formato de cadena.

  • Instrucciones
  • Usar .format()
  • Uso de literales de cadena con formato (f-strings)

Este libro se enfoca y la mayoría usa la cadena f .format() algunas veces. Pero es bueno saber cómo funcionan los tres.

Tomemos un momento para obtener más información sobre el formato de cadenas.

Formato de cadena usando %s (estilo printf)

usar % El método es el método de formato de cadenas más antiguo de Python. A veces llamado «formato de cadena de estilo printf». Si ha usado C o C++ en el pasado, probablemente ya esté familiarizado con este tipo de sustitución de cadenas. Para abreviar, aprenda los conceptos básicos del uso % aquí.

Nota: Este tipo de formato puede ser complicado y se sabe que causa errores comunes, como tuplas de Python y diccionarios en python que no se muestran correctamente. En este caso, recomendamos utilizar uno de los otros dos métodos.

uso más común % El logo es cuando usas %sEsto significa usar objetos de Python para convertirlos en cadenas. str()..

Aquí un ejemplo:

>>> name="Mike"
>>> print('My name is %s' % name)
My name is Mike

Este código requiere una variable name Inserta otra cadena con algo especial %s sintaxis. Tienes que usarla para que funcione % Fuera de la cadena está la cadena o variable que desea insertar.

Aquí está el segundo ejemplo que puede pasar int Convertir a cadena y convertir automáticamente.

>>> age = 18
>>> print('You must be at least %s to continue' % age)
You must be at least 18 to continue

Esto es especialmente útil si necesita convertir un objeto, pero no sabe de qué tipo es.

También puede usar varias variables para dar formato a las cadenas. De hecho, hay dos formas de hacerlo.

Es el primero:

>>> name="Mike"
>>> age = 18
>>> print('Hello %s. You must be at least %i to continue!' % (name, age))
Hello Mike. You must be at least 18 to continue!

En este ejemplo, crearemos dos variables y %s cuando %i.. este %i Indica que se pasó un número entero. Para pasar varios elementos, inserte una tupla de elementos después del signo de porcentaje.

Puede hacerlo más claro usando un nombre como este:

>>> print('Hello %(name)s. You must be at least %(age)i to continue!' % )
Hello Mike. You must be at least 18 to continue!

El argumento correcto es % Si el signo es un diccionario (u otro tipo de mapa), el formato de cadena debe hacer referencia a las claves entre paréntesis en el diccionario. %(name)sLuego el diccionario de la derecha % Debe haber name llave.

Si no incluye todas las claves requeridas, obtendrá un error.

>>> print('Hello %(name)s. You must be at least %(age)i to continue!' % )
Traceback (most recent call last):
   Python Shell, prompt 23, line 1
KeyError: 'name'

Para obtener más información sobre el uso del formato de cadena de estilo printf, consulte los siguientes enlaces:

https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting

Ahora vámonos. .format() método.

Formatear cadenas en python con .format()

cadena de Python .format() Un largo camino por recorrer. Este libro se centra en el uso de la cuerda F, pero encontrará .format() Todavía es muy popular.

Consulte a continuación para obtener más información sobre cómo funciona el formateo.

https://docs.python.org/3/library/string.html#formatstrings

Veamos algunos ejemplos breves para ver cómo. .format() Trabaja:

>>> age = 18
>>> name="Mike"
>>> print('Hello . You must be at least  to continue!'.format(name, age))
Hello Mike. You must be at least 18 to continue!

Este ejemplo utiliza parámetros posicionales. Python busca dos instancias: Inserte las variables en consecuencia. Si no pasa suficientes parámetros, obtendrá el siguiente error:

>>> print('Hello . You must be at least  to continue!'.format(age))
Traceback (most recent call last):
    Python Shell, prompt 33, line 1
IndexError: tuple index out of range

Este error significa que no hay bastantes elementos en ella .format() Teléfono.

También puede usar parámetros con nombre de la misma manera que en la sección anterior.

>>> age = 18
>>> name="Mike"
>>> print('Hello . You must be at least  to continue!'.format(name=name, age=age))
Hello Mike. You must be at least 18 to continue!

En lugar de pasarle un diccionario a .format(), los parámetros se pueden pasar por nombre. De hecho, cuando intento pasar el diccionario, me sale un error.

>>> print('Hello . You must be at least  to continue!'.format())
Traceback (most recent call last):
  Python Shell, prompt 34, line 1
KeyError: 'name'

Sin embargo, hay una solución.

>>> print('Hello . You must be at least  to continue!'.format(**))
Hello Mike. You must be at least 18 to continue!

Esto puede sonar extraño, pero en Python es un asterisco doble (**Cuando se usa de esta manera, significa pasar argumentos con nombre a la función, es decir, Python convierte el diccionario a name=name, age=age Para ti.

También puede usar para repetir una variable varias veces en una cadena. .format():

>>> name="Mike"
>>> print('Hello . Why do they call you ?'.format(name=name))
Hello Mike. Why do they call you Mike?

Mira aquí Si lo usa dos veces en una cadena, puede reemplazarlo con ambos .format()..

También puede usar números para interpolar valores si es necesario.

>>> print('Hello . You must be at least  to continue!'.format(name, age))
Hello 18. You must be at least Mike to continue!

La mayoría de las cosas en Python comienzan en 0 (cero).En este ejemplo, finalmente age llegar Después name llegar .

Estilos de codificación comunes al usar .format() cree una cadena de formato y guárdela en una variable para su uso posterior.

>>> age = 18
>>> name="Mike"
>>> greetings="Hello . You must be at least  to continue!"
>>> greetings.format(name=name, age=age)
'Hello Mike. You must be at least 18 to continue!'

Esto permite que sea reutilizado. greetings valor de actualización name cuando age Más tarde en el espectáculo.

También puede especificar el ancho y la posición de la cadena.

>>> ''.format('left aligned')
'left aligned        '
>>> ''.format('right aligned')
'       right aligned'
>>> ''.format('centered')
'      centered      '

La alineación a la izquierda es la configuración predeterminada. colon(:) le dice a Python que aplique un cierto formato. El primer ejemplo especifica que la cadena está alineada a la izquierda y tiene 20 caracteres de ancho. El segundo ejemplo también tiene 20 caracteres de ancho, pero alineado a la derecha. ^ Dile a Python que centre una cadena de 20 caracteres.

Si quieres pasar variables como en el ejemplo anterior:

>>> ''.format(name="centered")
'      centered      '

Precaución name debe ser lo primero : dentro ..

En este punto, debe estar bastante familiarizado con el método. .format() Eso funciona.

¡Vamos al f-string!

Formatear cadenas usando f-strings

Un literal de cadena de formato o f-string es una cadena que comienza con una «f», llaves y una expresión, similar a lo que vimos en la sección anterior. Estas expresiones informan a las cadenas f de las operaciones especiales que deben realizarse en la cadena insertada, como la alineación y la precisión de coma flotante.

Las cadenas f se agregaron en Python 3.6. Puede obtener más información al respecto y cómo funciona consultando PEP498 aquí:

https://www.python.org/dev/peps/pep-0498/

Las expresiones contenidas en la cadena f se evalúan en tiempo de ejecución. Esto le impide usar una cadena f como cadena de documentación para una función, método o clase si contiene una expresión. La razón es que la cadena de documentación se define cuando se define la función.

Vayamos a un ejemplo sencillo.

>>> name="Mike"
>>> age = 20
>>> f'Hello . You are  years old'
'Hello Mike. You are 20 years old'

Aquí, coloque «f» antes de las comillas simples, dobles o triples que comienzan la cadena para crear una cadena f. Luego usa llaves dentro de la cuerda. Inserta una variable en la cadena.

Sin embargo, las llaves deben contener algo. Crear una cadena f con llaves vacías da como resultado un error.

>>> f'Hello . You are  years old'
SyntaxError: f-string: empty expression not allowed

Nada f-string no puede hacer %s o entonces .format() Pero puedes. Las f-strings se evalúan en tiempo de ejecución, por lo que puede incluir expresiones de Python válidas en ellas.

Por ejemplo, age Cambiando:

>>> age = 20
>>> f''
'22'

También puede llamar a un método o una función.

>>> name="Mike"
>>> f''
'mike'

También es posible acceder directamente a los valores del diccionario en f-strings.

>>> sample_dict = 
>>> f'Hello . You are  years old'
'Hello Tom. You are 40 years old'

Sin embargo, el signo yen no se puede usar en expresiones de cadena f.

>>> print(f'My name is ')
SyntaxError: f-string expression part cannot include a backslash

Sin embargo, puede usar el signo de yen fuera de las expresiones en f-strings.

>>> name="Mike"
>>> print(f'My name is n')
My name is Mike

Otra cosa que no puede hacer es agregar un comentario dentro de la expresión f-string.

>>> f'My name is '
SyntaxError: f-string expression part cannot include '#'

En Python 3.8, f-strings agregó el siguiente soporte: =, expande el texto de la expresión, agrega un signo igual al texto de la expresión y luego incluye la expresión calculada. Esto parece un poco complicado, veamos un ejemplo:

>>> username="jdoe"
>>> f'Your '
"Your username="jdoe""

En este ejemplo, el texto de la expresión es username= añadir a la salida, entonces username Poner entre comillas.

El f-string es muy poderoso y muy útil. Si los usa sabiamente, puede simplificar enormemente su código. Definitivamente, usted debe darle una oportunidad.

¡Mira qué más puedes hacer con cuerdas!

Concatenación de cadenas python

Las cadenas también permiten la concatenación. Es una palabra llamativa que combina dos hilos en uno.

Cadena de conexión + símbolo:

>>> first_string = 'My name is'
>>> second_string = 'Mike'
>>> first_string + second_string
'My name isMike'

esposo Parece que las cadenas se están fusionando de una manera extraña porque olvidé agregar espacios finales first_string.. puedes modificarlo de la siguiente manera:

>>> first_string = 'My name is '
>>> second_string = 'Mike'
>>> first_string + second_string
'My name is Mike'

Otra forma de combinar cadenas es .join() método.este .join() Este método acepta objetos repetibles como listas de cadenas y los combina.

>>> first_string = 'My name is '
>>> second_string = 'Mike'
>>> ''.join([first_string, second_string])
'My name is Mike'

Esto concatena cadenas que están una al lado de la otra. Sin embargo, puede agregar algo a la cadena combinada.

>>> '***'.join([first_string, second_string])
'My name is ***Mike'

En este caso, compare la primera cadena con *** más la segunda cuerda.

En la mayoría de los casos, puede usar f-strings en lugar de concatenación. .join() Esto hace que el código sea más fácil de entender.

Segmentos de cadenas den python

Los segmentos de cadenas funcionan de manera muy similar a las listas de Python. Tome la cadena «micrófono». La letra «M» está en la posición 0 y la letra «e» está en la posición 3.

Si desea obtener los caracteres del 0 al 3, utilice la siguiente sintaxis: my_string[0:4]

Es decir, necesitamos una subcadena desde la posición 0 hasta la posición 4.

He aquí algunos ejemplos:

>>> 'this is a string'[0:4]
'this'
>>> 'this is a string'[:4]
'this'
>>> 'this is a string'[-4:]
'ring'

El primer ejemplo toma los primeros cuatro caracteres de la cadena y los devuelve. Si lo desea, puede eliminar el cero y usarlo como predeterminado. [:4] En cambio, esto es lo que hace el Ejemplo 2.

También puede usar valores en posiciones negativas. [-4:] Esto significa obtener los últimos 4 caracteres de la cadena desde el final de la cadena.

Tendrás que probar las rebanadas tú mismo y ver qué otras rebanadas puedes encontrar.

Palabras finales

Las cadenas de Python son poderosas y muy útiles. Se pueden crear usando comillas simples, dobles o triples. Las cadenas son objetos, por lo que tienen métodos. También aprendió tres formas diferentes de concatenar cadenas, dividir cadenas y formatear cadenas.

El último formato de cadena es f-string. También es el método más robusto y actualmente recomendado para formatear cadenas.

¿ Te fue útil este artículo ?
⬇️ Ayudame compartiendo para poder llegar a más personas.⬇️

3 comentarios en «Manipulación de cadenas en python»

  1. ¿Crees que el método %s en Python es más efectivo que el método de formato tradicional? 🤔

    • ¡Sin duda! El método %s en Python es más eficiente y legible que el formato tradicional. ¡Adiós a las concatenaciones tediosas! ¡Bienvenido el formato más elegante y poderoso! 👏🐍 #PythonPower

  2. ¡El método de cadena en Python es tan útil! ¿Alguien más lo usa mucho?

Los comentarios están cerrados.