Introducción a Python: Uso de Strings

Publicado el 20 mayo 2018 por Technodyan

Este post es parte del Curso de introducción a Python 3:

  1. Introducción a Python: Porque programar con Python
  2. Instalación de Python 3 y IDLE
  3. Primer programa: “Hola Mundo”
  4. Tipos de datos en Python
  5. Asignación y uso de variables
  6. Valores booleanos
  7. Colecciones de dato en Python: Listas y Tuplas
  8. Condicionales: If, else, elif
  9. Ciclos en Python
  10. Definición y uso de funciones en Python
  11. Importación y uso de módulos en Python
  12. Uso de strings en Python

Introducción

Como vimos anteriormente, en Tipos de datos en Python, los string son un tipo de dato en Python utilizado para representar texto en nuestros programas. Aunque hasta ahora sólo los hemos utilizado para desplegar mensajes con print(), las cadenas de texto en Python pueden hacer muchas más cosas, como veremos a continuación.

Strings en Python

Propiedades

Los strings en Python, como las tuplas, son inmutables y son iterables, es decir, podemos recorrerlos utilizando un ciclo for. Además de esto, comparten muchas características con las listas y tuplas, pues básicamente, los strings son tuplas de letras.

Utilizando la palabra in podemos saber si un caracter aparece en un string:

En el siguiente programa contamos las veces que una vocal aparece en un string utilizando un ciclo for:

Entrada de datos por teclado

Para poder recibir datos por teclados utilizamos la función input(). Esta función, a su vez, nos permite desplegar un mensaje en pantalla y es utilizada de la siguiente manera:

var = input("Mensaje")

Los datos son recibidos como strings, aunque después podemos convertirlos a enteros o flotantes si lo deseamos.

El siguiente programa muestra un saludo personalizado al usuario:

Concatenación y unión de strings

La concatenación es una operación que nos permite unir strings de la siguiente forma:

string1 + string2 + string3

Resultando en:

string1string2string3

Sin embargo, la concatenación es una operación costosa en memoria, en el sentido de que el equipo necesita crear un nuevo string por cada concatenación , algo que resulta en una reducción en el desempeño del programa imperceptible a primera vista, pero que puede convertirse en un problema al realizarse numerosas veces.

Por tal razón, Python ofrece diferentes opciones para unir dos strings sin penalizar mucho el rendimiento.

Una de estas opciones la hemos usado repetidamente a lo largo de este curso por simplicidad: Separar los valores a imprimir por coma. Al hacer esto no estamos uniendo strings, ya que sólo puede utililzarse dentro de la función print; además, recordando como funcionan los argumentos de las funciones, te habrás dado cuenta que lo que estamos haciendo en realidad es enviar multiples argumentos a print(), y la función imprime cada uno de estos parametros separados por una variable separadora asignada de forma predeterminada a un espacio en blanco, pero que podemos modificar de la siguiente forma:

Salida:

usuario@programadorplus.com
usuario en programadorplus.com
usuario programadorplus.com
usuario de programadorplus.com

Finalmente, podemos realizar concatenación de caracteres utilizando el método str.join(), que nos permite unir un string con un objeto iterable.

Por ejemplo:

Salida:

ABCDEF

En el código anterior utilizamos str.join() sobre un string vacio para crear un nuevo string. El método str.join() es más rápido que la concatenación ya que une dos strings dentro de un iterable en nuevo string, mientras que la concatenación tiene que copiar enteramente los strings que va a unir y el resultado de estos, por ejemplo, si queremos unir cuatro string de 5 caracteres la concatenación funcionará de la siguiente forma:

5+5 + ((5+5)+5) + ((5+5)+5)+5

Resultando en 45 caracteres copiados en memoria por la concatenación en lugar de los 20 que tomaría si se estuvieran uniendo.

En general, lo anterior no debe suponer un problema siempre y cuando no abuses de la concatenación en tus programas.

Formato

El formato de strings en Python nos permite realizar sustituciones de valores en nuestros strings y conversiones dentro del string, entre muchas otras operaciones.

Sustitución de valores

Para sustituir valores dentro del string en Python 3 contamos con diversas sintaxis:

1.- Utilizando corchetes

Salida:

Hola, mi nombre es Noé y soy de México

Utilizando índices:

Salida:

Este curso de introducción a Python cuenta con 12 modulos
Este es el año 2018, día 18 de Mayo

Y si cuentas con al menos Python 3.6, puedes incluir variables entre corchetes en tus strings:

Salida:

Bienvenido a este curso de Python 3 en ProgramadorPlus.com!
Conversión de valores

Con str.format() puedes realizar conversiones entre sistemas de numeración, por ejemplo, para mostrar el número 20 en binario, octal y hexadecimal utilizando el formato por indices:

Salida:

10100
24
14

Constantes

Importando el modulo string podemos acceder a las constantes definidas en Python:

Salida:

string.ascii_letters = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
string.ascii_lowercase = abcdefghijklmnopqrstuvwxyz
string.ascii_uppercase = ABCDEFGHIJKLMNOPQRSTUVWXYZ
string.digits = 0123456789
string.hexdigits = 0123456789abcdefABCDEF
string.octdigits = 01234567
string.punctuation = !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
string.printable = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
string.whitespace = ' \t\n\r\x0b\x0c'

Métodos

Los string también contienen varios métodos para modificar la salida del string, algunos de estos son:

  • str.upper() – Regresa el string en mayusculas
  • str.lower() – Regresa el string en minusculas
  • str.count(substring) – Regresa la cantidad de veces que el substring aparece en el string
  • str.endswith(sufijo) – Devuelve True si la cadena termina con el sufijo
  • str.find(substring) – Devuelve el índice donde se encuentra el substring en el string
  • str.replace(substring, reemplazo) – Reemplaza el substring dentro de la cadena con un reemplazo especificado.

Salida:

HOLA MUNDO!
hola mundo!
2
True
5
Saludos mundo!

Conclusión

Los strings son necesarios para poder mostrar todo tipo de mensajes a los usuarios de nuestros programas; gracias a str.format() y demás métodos existentes, los strings se vuelven mucho más flexibles y convenientes, pudiendo adaptarse a las salidas que necesitemos y convirtiendose en mucho más que simple texto plano desplegado.

Los strings cuentan con muchos más métodos y opciones de formato, que puedes consultar en la documentación oficial de Python si deseas conocerlos.