Dato de tipo String con Python

Datos de tipo texto

Los datos de tipo texto se pueden escribir en Python entre comillas dobles o comillas simples: no existe diferencia. Se recomienda utilizar un solo tipo de comillas para todo el código del programa.

cadena = 'Soy una cadena de texto'
print(cadena)
# Soy una cadena de texto

Es posible crear una variable de texto con varias líneas.

cadena = """ Esta es una cadena de
varias líneas
de texto """
print(cadena)
Esta es una cadena de
varias líneas
de texto 

Conocer la longitud de la cadena mediante la función len().

cadena = 'Mi cadena de texto'
print(len(cadena))

# 18

Es posible acceder a los elementos de una cadena de texto según la posición en la que estén colocados mediante su índice. El índice de la cadena comienza con el valor 0.

cadena = 'Soy una cadena de texto'
print(cadena[2])
# y

Se puede utilizar un índice negativo para acceder a su valor. Estos índices comienzan en -1 para el primer valor y recorren la cadena desde el final hasta el principio.

cadena = 'Soy una cadena de texto'
print(cadena[-1])
# o

Para acceder únicamente a un trozo de la cadena, hay que indicar mediante valores de índices el valor de inicio y el de fin.

cadena = 'Soy una cadena de texto'
print(cadena[2:6])
# y un

Las cadenas de texto se pueden sumar fácilmente.

cadena = 'Soy una '
otra_cadena = 'cadena de texto '
otra_mas = 'sumada'
print(cadena + otra_cadena + otra_mas)
# Soy una cadena de texto sumada

Se pueden multiplicar.

cadena = '♣'
print(cadena * 10)
# ♣♣♣♣♣♣♣♣♣♣

Al buscar una cadena dentro de otra cadena, el resultado puede ser True, en caso de que la encuentre, y False, si no existen coincidencias.

cadena = '♦♥♣♠'
otra_cadena = '♣'
print(otra_cadena in cadena)
# True

otra_mas = '♫'
print(otra_mas in cadena)
# False

Podemos hacer lo mismo para obtener un resultado negativo en la búsqueda de una cadena dentro de otra. ¿Qué significa esto? Muy sencillo: si buscamos una cadena dentro de otra y no existen coincidencias, nos devolverá True; si existe alguna coincidencia, False.

cadena = '♦♥♣♠'
otra_cadena = '♫'
print(otra_cadena not in cadena)
# True

otra_mas = '♣'
print(otra_mas not in cadena)
# False

Podemos convertir cualquier tipo de dato a una cadena mediante la función str().

numero = 123
print(type(numero))
# <class 'int'>

numero = str(numero)
print(type(numero))
# <class 'str'>

variable = True
print(type(variable))
# <class 'bool'>

variable = str(variable)
print(type(variable))
# <class 'str'>

Función dir en Python para String

Independientemente de como llamemos a la función dir, (str) o con nuestra cadena de texto, esta nos va a devolver una lista, bastante extensa, de todos los atributos y métodos de los que dispone. Puedes hacer la prueba en un terminal.

mi_cadena = 'Hola soy una cadena'
dir(mi_cadena)

No voy a publicar la lista porque me parece un poco absurdo, pero sí vamos a ver algunos métodos de los que aparecen para que se pueda apreciar el potencial que tiene.

Métodos upper y lower en Python

Estos métodos devuelven una copia de nuestra cadena en mayúsculas o minúsculas.

mi_cadena = 'Hola, Badajoz es una gran ciudad'
mi_cadena_minusculas = mi_cadena.lower()
print(mi_cadena_minusculas)
# hola, badajoz es una gran ciudad

mi_cadena_mayusculas = mi_cadena.upper()
print(mi_cadena_mayusculas)
# HOLA, BADAJOZ ES UNA GRAN CIUDAD

Método split en Python

El método split() en Python divide un objeto de tipo string en un array de cadenas. Podemos especificarle el separador o no indicarle ninguno. Si no se indica, se toma por defecto el espacio en blanco (estos espacios se eliminan al dividir la cadena).

En este ejemplo de split() se puede ver cómo la cadena se divide por cada espacio en blanco (valor por defecto).

mi_cadena = 'Hola, Badajoz es una gran ciudad'
print(mi_cadena.split())

# ['Hola,', 'Badajoz', 'es', 'una', 'gran', 'ciudad']

Si realizamos la llamada split() pasándole el argumento sep=’,’ de la siguiente forma, podemos ver que divide la cadena basándose en el argumento sep → separador (el separador también se elimina).

mi_cadena = 'Hola, Badajoz es una gran ciudad'
print(mi_cadena.split(sep=','))

# ['Hola', ' Badajoz es una gran ciudad']

El argumento maxsplit permite indicarle el número máximo de divisiones que queremos que se realicen en nuestra cadena.

Para este ejemplo tomaremos la cadena ♦♥♣♠ repetida varias veces y separada por una coma; le daremos la coma como separador y le diremos que solo nos haga tres divisiones.

mi_cadena = '♦♥♣♠,♦♥♣♠,♦♥♣♠,♦♥♣♠,♦♥♣♠,♦♥♣♠'
print(mi_cadena.split(sep=',', maxsplit=3))

# ['♦♥♣♠', '♦♥♣♠', '♦♥♣♠', '♦♥♣♠,♦♥♣♠,♦♥♣♠']

Método replace en Python

El método replace devuelve una copia de nuestra cadena tras haber reemplazado todas las coincidencias. Se ve mucho más fácil con un ejemplo:

Para ver cómo se realiza el reemplazo de todas las coincidencias, guardaremos una cadena en la variable de Python mi_cadena.

mi_cadena = '♦♥♣♠♦♥♣♠♦♥♣♠♦♥♣♠♦♥♣♠'
mi_cadena.replace('♣', '☻')

# '♦♥☻♠♦♥☻♠♦♥☻♠♦♥☻♠♦♥☻♠'

También podemos indicarle en el tercer parámetro el número de sustituciones que necesitamos. Si no se indica, se sustituirá toda la cadena.

mi_cadena = '♦♥♣♠♦♥♣♠♦♥♣♠♦♥♣♠♦♥♣♠'
mi_cadena.replace('♣', '☻', 2)

# '♦♥☻♠♦♥☻♠♦♥♣♠♦♥♣♠♦♥♣♠'

Son tantas las posibilidades que podemos estar viendo métodos y jugando con ellos mucho tiempo. La verdad es que son bastante útiles y fáciles de utilizar en nuestros proyectos.

Aunque lo que considero más importante es conocer la forma de ver esa lista de la que hablamos antes y, de esta forma, descubrir los métodos que existen para poder jugar con ellos.

print(dir(str))

Desde aquí puedes ver las operaciones más comunes de cadenas de caracteres. Desde este otro enlace puedes ver los métodos más empleados con cadenas de caracteres.

Dejar un comentario

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