Hemos estado trabajando con tipos de datos numéricos y aunque tenemos las nociones sobre tipos de datos de cadenas, en realidad no hemos profundizado en ello. Python puede manipular también datos de tipo cadena (strings). Una cadena se define como una secuencia de carácteres, ya sean letras, números, signos de puntuación, etcétera, que logran distinguires porque están encerrados entre comillas (dobles o simples):
hola = "1. Esto es uan cadena de texto :)"
print(hola)
print(type(hola))
1. Esto es uan cadena de texto :) <class 'str'>
Podemos realizar también operaciones entre cadenas de texto
nombre = "mi nombre es Luis"
saludo = "mucho gusto"
print(nombre + saludo)
mi nombre es Luismucho gusto
para agregar espacios en blanco tenemos, por ejemplo, esta opción
# cadena de texto vacía " "
print(nombre + " " + saludo)
mi nombre es Luis mucho gusto
Cabe aclarar que la operación +
no es de adición, sino que es de concatenación. Podemos realizar repetición de cadenas de texto
print(saludo * 5)
mucho gustomucho gustomucho gustomucho gustomucho gusto
donde no debe confundirse en este contexo a la operación *
como multiplicación, más bien como repetición.
También tenemos otra alternativa a la concatenación, por ejemplo en vez de escribir print(nombre + " " + saludo)
podemos usar
print(nombre, saludo)
mi nombre es Luis mucho gusto
donde cada coma representará un espacio en blanco. Más aún podemos hacer cosas como
print("Hola", nombre, saludo, ".")
Hola mi nombre es Luis mucho gusto .
Es precio aclarar que x = 1
y x = "1"
son cosas muy distintas pues la primera asignación de x
corresponde a un número entero y la segunda a una asignación de una cadena de texto. Veamos
# declaramos una variable de tipo string
x = "1"
# e intentamos efectuar una operación
print(x + 2)
# lo cual nos gustaría que saliera 3 como resultado, sin embargo:
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-13-60a08d8f681a> in <module> 4 # e intentamos efectuar una operación 5 ----> 6 print(x + 2) 7 # lo cual nos gustaría que saliera 3 como resultado, sin embargo TypeError: can only concatenate str (not "int") to str
Obtenemos un error pues recordemos que +
representa concatenación en cadenas de texto y representa la operación de adición cuando se trabaja con datos numéricos, sin embargo en la operación anterior combinamos un tipo de dato numérico y otro de cadena de texto por lo que +
no puede fungir simultáneamente como adición y concatenación.
Una alternativa particular es convertir la cadena de texto que contiene (exclusivamente) carácter numérico a un tipo de dato int
, esto se consigue
int(x)
# int(x) es un número entero, pero x en sí continúa siendo una cadena de texto
print("Cadena de texto:", x)
print("Número entero:", int(x))
print(int(x) + 2)
Cadena de texto: 1 Número entero: 1 3
Podemos revertir el proceso, es decir convertir un dato de tipo entero a un dato de tipo cadena
n = 0
# convertimos a n a un tipo string
str(n)
# veamos que, en efecto, es de tipo cadena
print(type(str(n)))
# lo anterior nos permite utilizar + como concatenación
print("Este es el número cero:", str(n))
<class 'str'> Este es el número cero: 0
Ahora bien, dado que Python es un lengueaje orientado a objetos tenemos que las clases son las que estarán almacenando toda la información, en el módulo 2 abordaremos más a detalle todo lo relacionado con la programación orientada a objetos (poo). Es por ello que vemos al inicio del mensaje <class 'bool'>
la palabra class.