Tipos de Datos Básicos#

Enteros#

Vea el siguiente ejemplo

x = 1
print(x)
print(type(x))
x = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
print(x)
print(type(x))
1
<class 'int'>
1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
<class 'int'>

Se observan dos cosas interesantes. Primero, el tipo de dato es una clase ‘int’. Todo en Python son objetos, incluidos la variables simples. En otro capítulo estudiaremos las clases y objetos en detalle.

Segundo, En Python puede tener números enteros tan grandes como desee, a diferencia de otros lenguajes de programación.

Para convertir un tipo de dato diferente a int, siempre que sea posible se usa el cast int. Por ejemplo

# '120' es un string

total = '120'
print(total)
print(type(total))

total = int('120')
print(total)
print(type(total))
120
<class 'str'>
120
<class 'int'>

¿Que es un cast?#

Es una palabra que se antepone a un valor o a una variable para cambiarle el tipo de dato, como se ilustra en el ejemplo anterior.

Usando input#

La sentencia input se utiliza para solicitar información al usuario. La función input siempre regresa un string.

edad = int(input('Por favor entre su edad:'))
print(edad)
print(type(edad))
---------------------------------------------------------------------------
StdinNotImplementedError                  Traceback (most recent call last)
/tmp/ipykernel_2468/3882946908.py in <module>
----> 1 edad = int(input('Por favor entre su edad:'))
      2 print(edad)
      3 print(type(edad))

/opt/hostedtoolcache/Python/3.7.13/x64/lib/python3.7/site-packages/ipykernel/kernelbase.py in raw_input(self, prompt)
   1173         if not self._allow_stdin:
   1174             raise StdinNotImplementedError(
-> 1175                 "raw_input was called, but this frontend does not support input requests."
   1176             )
   1177         return self._input_request(

StdinNotImplementedError: raw_input was called, but this frontend does not support input requests.

Punto Flotante#

Lo número reales son representados usando el estándar IEEE 754 double precision. El formato de punto flotante de doble precisión (a veces llamado FP64 o float64 ) es un formato de número de computadora , que generalmente ocupa 64 bits en la memoria de la computadora; representa un amplio rango dinámico de valores numéricos mediante el uso de un punto de base flotante .

El punto flotante se usa para representar valores fraccionarios, o cuando se necesita un rango más amplio que el proporcionado por el punto fijo (del mismo ancho de bit), incluso a costa de la precisión. Se puede elegir la doble precisión cuando el rango o la precisión de la precisión simple sean insuficientes.

x = 1.
print(x)
print(type(x))
1.0
<class 'float'>

Números Complejos (complex)#

Se representan en la forma \(a + bj\), en donde \(a\) es la parte real y \( b\) la parte imaginaria

z = 3.4 + 4j
print(z)
print(type(z))
(3.4+4j)
<class 'complex'>

Booleanas (bool)#

El tipo booleano se utiliza para variables que solamente pueden ser ‘True’ o ‘False’, es decir, valores booleanos o lógicos. Por ejemplo:

t = True 
print(t)
print(type(t))
True
<class 'bool'>

None#

Este es un tipo especial de dato utilizado para indicar que una determinada variable no contiene ningún dato. Es muy útil en el control de muchas situaciones, porque sirve para saber si algún objeto a llegado a ser None. Mire el siguiente ejemplo.

b = None
print(b)
print(type(b))

z = 5

b is None
None
<class 'NoneType'>
True
# Pruebe: z is None

Textos: strings#

Los string son expresiones que representan una cadena de caracteres, útiles para escribir mensajes y combinarlos con valores que generemos en nuestros procesamientos. Para escribir un texto en Python usamos comillas simples: '...' o comillas dobles: "...". Combinamos comillas para poner comillas adentro:

a='Texto simple escrito entre comillas simples'
print(a)
a
Texto simple escrito entre comillas simples
'Texto simple escrito entre comillas simples'
b="Texto simple escrito entre comillas dobles"
print(b)
b
Texto simple escrito entre comillas dobles
'Texto simple escrito entre comillas dobles'
c='Texto simple escrito entre comillas simples que necesita "adentrico" comillas dobles'
print(c)
Texto simple escrito entre comillas simples que necesita "adentrico" comillas dobles
d="Texto simple escrito entre comillas dobles que necesita 'adentro' comillas simples"
print(d)
Texto simple escrito entre comillas dobles que necesita 'adentro' comillas simples

Como vimos, la función print es la que nos permite imprimir estos mensajes. La secuencia de control \n indica una nueva linea en el texto:

print("Una línea\nOtra línea")
Una línea
Otra línea

No obstante, a veces necesitamos escribir \n en un mensaje:

print('La ruta del archivo es C:\nombres\archivo.ipynb')
La ruta del archivo es C:
ombresrchivo.ipynb

En este caso la aparición del símbolo \ daño el mensaje. La primera solución es la siguiente. ¿puede explicarla por favor?

print('La ruta del archivo es C:\\nombres\\archivo.ipynb')
La ruta del archivo es C:\nombres\archivo.ipynb

Una segunda solución para resolver el problema consiste en escribimos r antes del string, así::

# Qué significa la r???
print(r'La ruta del archivo es C:\nombres\archivo.ipynb')
La ruta del archivo es C:\nombres\archivo.ipynb

Finalmente, podemos recorrer los valores de la cadena de texto de la siguiente forma:

texto="cuidado_con_el_orden"
texto
'cuidado_con_el_orden'

Extrayendo el elemento cero del texto (primer caracter):

print(texto[0])
c

Extrayendo el elemento uno del texto (segundo caracter):

texto[1]
'u'

Extrayendo el elemento cinco hasta el elemento 9 del texto (sin incluir el 9):

texto[5:9] #[ )
'do_c'

También se pueden usar índices negativos

texto[3:-1]
'dado_con_el_orde'
texto[-1]
'n'

Asignación múltiple#

Es posible asignar valores a diferentes variables en una línea de código:

# Asignación múltiple

w, x, y, z = "Apple", "Watermelon", "Grape", 28;print(w);print(x);
print(y);
print(z);
print(w,x,y,z,sep=", ");
Apple
Watermelon
Grape
28
Apple, Watermelon, Grape, 28

También es posible asignar un mismo valor a diferentes variables:

# Asignación múltiple del mismo valor

x1 = x2 = x3 = 0.5;
print('x1 =',x1);
print('x2 =',x2);
print('x3 =',x3);
x1 = 0.5
x2 = 0.5
x3 = 0.5

Ejercicio#

Explique qué hace el siguiente código.

x, y = 3, 10

y, x = x, y

print(y,x)
3 10

Variables no asignadas#

Toda variable debe ser incializada, es decir, debe tener algún valor asignado antes se de ser utilizada. Observe el siguiente ejemplo.

n # Variable sin asignar
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-35-4778835ece5b> in <module>
----> 1 n # Variable sin asignar

NameError: name 'n' is not defined

El error ocurre porque la variable n no ha sido asignada.

Eliminacion de variables#

Una variable y en general un objeto puede ser eliminado del entrono actual con la sentencia del. Por ejemplo:

w = 1
del w
print(w)

Ejercicio#

Describa lo sucedido en el último ejemplo, por favor.