La intencion de esta entrada es definir de una forma simple los tipos de dato que python asimila.
Numeros
Los numeros en Python incluyen los sospechosos de siempre , como enteros, numeros en punto flotante, numeros complejos, imaginarios, fraccionarios.. Aun mas, en Python y en cualquier otro lenguaje los numeros aceptan operaciones matematicas normales, como sumas , restas , multiplicaciones ,divisiones y exponenciales. Por ejemplo
·· 123 + 223 # Suma de enteros
·· 346 # Resultado de los 2 objetos anteriores sumados.
·· 1.5 * 4 # Multiplicacion en Punto Flotante.
·· 6.0 # Resultado
·· 2 ** 100 # 2 a la potencia 100.
# 1.2676506e+30
Si observan bien, el tipo de dato entero en python automaticamente provee precision extra para los numeros cuando la necesitan, ( en el caso de que el resultado sea un numero interesantemente grande ) , asi , podriamos tratar de computar 2**10000000000000000000 y esperar que nos resuelva la sentencia, no esta de mas decir que si tratamos de imprimir eso el compilador creara un agujero negro en nuestro CPU y nos enviara por un agujero de gusano a otra dimensión, donde obviamente aprenderemos que si tratamos de imprimir ese numero con mas de 300,000 digitos, el tiempo de ejecución sera inmenso.
Otro dato importante es ver como resulta el experimentar con numeros en punto flotante y su representación
··3.1415 * 2 # Representación en codigo
6.2830000000004
·· print (3.1415 * 2 ) # representación user-friendly
6.283
Obviamente , el primer resultado no es un bug, es un pequeño problema al tratar de visualuzar la operacion, y esto es porque existen siempre 2 formas de imprimir en pantalla cualquier objeto, una es Full Presicion ( como en el primer ejemplo ) y la otra en User - Friendly ( segundo ejemplo ).
Strings
Los strings son usados para representar informacion txtual , podemos llamarlos nuestro primer ejemplo de secuencia en Python, , en otras palabras, una coleccion ordenada y posicional de objetos, ya que un string no es mas que una coleccion de caracteres juntos. Despues veremos otros tipos de secuencias como Tuplas, listas , etc.
Operaciones con Strings
Como secuencias, los strings soportan operaciones que asumen un orden posicional sobre sus items, por ejemplo, si tenemos un string de 4 caracteres , podemos verificar su tamaño con la funcion embebida de python o indexando sus componentes, he aqui un ejemplo :
·· S = 'Spam'
··len(S) # Tamaño del String
··4
·· S [0] # el primer item en el string, que siempre se encuentra en la posicion 0.
·· 'S'
·· S[1] #Primera Posicion
·· 'p'
Asi podemos discernir de que es una secuencia ordinal . No esta de mas aclarar que esto funciona tanto con indices positivos como negativos, si usaramos como indice -1 empezaria desde la m, digamos que daria la vuelta a todo el string y empezaria por el final, -2 seria 'a' y asi seguiria.
Si observan se daran cuenta que declare la variable de la nada, sin ningun orden de declaracion como en otros lenguajes, despues hablare mas de esto, pero ahora el punto es que la variable se crea solamente cuando le asigno un valor . Aqui tenemos un principio en python, es necesario asignarle a un objeto una varaible para guardarlo y posteriormente representarlo en los programas que desarrollemos.
Aun mas! Los strings soportan operaciones de slicing y concatenacion
Slicing : es otra forma de indexacion que nos permite extraer toda una seccion en un solo paso
···· S # Todo el string completo
'Spam'
···S [ 1:3] # Slice de S , offset 1 pasando por 2 ( no 3 )
'pa'
Probablemente la forma mas facil de pensar en un slice es extraen una columna de un string en un solo paso , su forma general se podria expresar como X [I:J] , algo asi como , "dame de x el offset de I hasta J pero sin incluir J ". El slice por decirlo asi, se "desplaza" e ignora los caracteres que no se le especificaron (segun el indice )
Concatenación : Finalmente los strings tambien pueden ser concatenados con el singo aritmetico +. Esto hace que 2 strings se sumen formando un nuevo string. por ejemplo :
···S
··'spam'
···S + 'xyz' # se produce la concatenacion
'Spamxyz'
···S
'spam'
# Noten que la variable que representa al objeto string no es modificada
Observen tambien que el signo + tiene diferentes significados dependiendo del objeto , en strings concatena, en numeros sma. Eso podria ser definido como poliformismo ya que cambia su efecto dependiendo del objeto que manipula.
La proxima entrada la segunda parte
No hay comentarios:
Publicar un comentario