Python logo

Introducción a Python: Uso de Strings

Conoce mi nuevo proyecto: Tutoriales de programación en Programador Plus

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:

https://gist.github.com/Nxz02/3b8e3cdb767486ae7898123132f2093e

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:

https://gist.github.com/Nxz02/44e754fd195adbb8bc1574c63a2063e9

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:

https://gist.github.com/Nxz02/a2f0b79497da15655bce65503dd79561

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:

https://gist.github.com/Nxz02/227f4d1c1cd84676d3f76efea951ebbf

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

https://gist.github.com/Nxz02/3864ea1d2f32b567736c8903d16f2b53

Salida:

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

Utilizando índices:

https://gist.github.com/Nxz02/5def137fa4d417cf72d91d0c3b6ac034

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:

https://gist.github.com/Nxz02/a29bcf4417a18340dc972c76e53b9948

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:

https://gist.github.com/Nxz02/3cf71000b99902a3a48384299554d8d6

Salida:

10100
24
14

Constantes

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

https://gist.github.com/Nxz02/3c296f4f5b836587be233cd6334342fc

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.

https://gist.github.com/Nxz02/d42b24206bdd094eb37258dff356762b

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.

Noé Reyes Guerra

Soy un jóven aficionado a la tecnología, felíz usuario de Linux, Firefox y Android, partidario del software libre.

10 comentarios en “Introducción a Python: Uso de Strings”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.