Mostrando entradas con la etiqueta tutorial. Mostrar todas las entradas
Mostrando entradas con la etiqueta tutorial. Mostrar todas las entradas

martes, 13 de mayo de 2014

Segundo programa Python (Listas, Tuplas y Diccionarios)

Para el segundo programa vamos a ver las listas, tuplas y diccionarios.
En este punto existen varias cosas interesantes, como la busqueda por rangos, la búsqueda de atras hacia adelante en una lista, y la búsqueda con saltos (no sé como decirle exactamente). Vamos a verlo en el siguiente código.
Copialo y pégalo en el IDLE de Python y pinchale a F5.

#****************************************************************
#Mi segundo programa Python
#Si se abre con IDLE, ejecutar con la tecla F5

#Listas (arrays o vectores)
lista1 = [1, 2, "tres", 4, "cinco", [2,3], 7, "ocho", "nueve", 10]

print("Accediendo a la lista:", lista1[2])
#La sublista esta en el index 5 de la lista principal, accedemos al primer valor
#de ella (sublista)
print("Accediendo a la sublista:", lista1[5][0])

print("Lista original:", lista1)
lista1[0] = 100
print("Modifico 1er elemento (1 por 100):", lista1)

#Uso de numero negativo (busqueda inversa)
#Buscará la 3 posicion de atras hacia adelante de la lista
print(lista1[-3])

#Uso de Slicing (particionado) o busqueda por rango
print(lista1[0:4])

#Uso de saltos (cada n cantidad)
#Buscara solo en la posicion 0 a la 8, saltando 3 elementos en cada item encontrado
print(lista1[0:8:3])

#Tuplas
#Se pueden manejar a las listas
#La gran diferencia es que las tuplas son inmutables
#tupla1[1] = 100 (TypeError: 'tuple' object does not support item assignment) #este es el error que dá si intentas cambir algo, lo puedes descomentar para que lo vivas :)
tupla1 = (1,2,3,4,5)
print("Tupla:", tupla1[:3])

#Diccionarios, la misma vaina que los HashMaps de JAVA :)
diccionario = {"uno":1, "dos":2, "tres":3}
print("Diccionario:", diccionario["uno"])

#****************************************************************

En resumen:

  1. Crear una lista es bastante sencillo, de igual forma acceder a sus elementos
  2. Si bien las tuplas pueden ser manipuladas como una lista para su consulta, la gran diferencia es que las tuplas son inmutables, es decir que son como una especie de constante, no podemos cambiar los valores que les asignemos al crearlas.
  3. Listas se crean con [], las tuplas se crean con ()
  4. Y pues los diccionarios son una estructura de clave = valor en la que los valores se acceden por el nombre de la clave, similar a los HashMaps de Java
  5. De igual manera, aunque no lo puse aqui (y obviamente) podemos hacer pruebas de recorridos con un for, que por cierto lleva abreviadas muchas cosas para los que estamos acostumbrados a los for de C o los antiguos de Java.
Aqui esta el Tercer programa

lunes, 12 de mayo de 2014

Este fué mi primer programa con Python, muy simple realmente. Comento entre líneas lo que estaba haciendo (recordar que los comentarios inician con #)
Copia el contenido a continuación (te sería más instructivo escribirlo pero bueno ...) y pégalo en el IDLE, ejecútalo con F5

#*****************************************************************************
#Mi primer programa Python
#El print recibe cualquier cantidad de parametros separados por coma (,)
#incluyendo expresiones aritmeticas como se muestra a continuacion.
#Si se abre con IDLE, ejecutar con la tecla F5

print ("Si sumas 2 + 3 el resultdo es ",
       2 + 3,
       "\nPero si los restas el resultado es ",
       2 - 3,
       "\nQue cosa no?")

#Variables
#No necesitas declarar de qué tipo son, sólo se declaran (tipo dinamico)
a = "Soy una cadena de texto"
b = 50
c = 25

print(a, "\nOperacion:", b + c)

c = "Como los tipo son dinamicos, puedes cambiar el tipo de dato de tu variable en tiempo de ejecución"
print(c) #Notar que c era un entero (25)

multilinea = """ Esto es cool
                 puedo escribir lineas sin usar carracteres de escape
                 solamente usando las comillas triples :)"""

print(multilinea)

#Las cadenas tambien aceptan operaciones aritmeticas
#Es decir que puedes multiplicar o sumar cadenas de texto
d = "eco"
e = d * 3
f = "sistema"
print("Multiplicacion de cadenas:", e)

e = d + f
print("Suma de cadenas:", e)
#*****************************************************************************

En resumen:

  1. Es bastante agradable el metodo print, ya que acepta lo que le pongas y como lo pongas (salvo el caso de los enteros y lo que no sea string. Pero tranquilo! tenemos el método str() que transforma a string lo que le pongas :) Ej.: print(str(25))
  2. Vimos que los tipos de datos son dinámicos (c era un entero y luego era un string)
  3. Vimos los textos multilinea con """ """", util si no se quiere usar el clásico \n (que puede ser usado)
  4. Vimos la multiplicación de cadenas
Un saludo! Cualquier duda, pues a la orden!

Aprendiendo Python

Bueno, hace algunos días decidí hacer cosas con Python para ver que tal, ya que quería aprender un nuevo lenguaje y me decidí por él.
En mi caso venía de trabajar puramente con Java y para mi sorpresa las diferencias son muchas (jejeje lógico no?), pero hay unas que me agradaron muchas.
Visto desde el punto de vista de la línea de aprendizaje pues hacer un programa algo complejo (Conexión a base de datos con Oracle usando ORM SQLAlchemy) no me tardó mucho.
Aunque atribuyo eso a que ya conocía un lenguaje orientado a objetos y que algunas cosas pues son muy similares funcionalmente.

Si me percaté de ciertas diferencias muy notables que dejo a continuación:

  1. No tienes que tipar tus variables, el tipo de datos de las mismas es dinámico, es decir que según como la uses el tipo de dato de tu variable cambiará.
  2. Los bloques de código no se cierran con llaves, en el caso del for y demás cosas por el estilo, se debe tabular el código (perfecto para mí porque tengo la tecla de la llave cerrando dañada :D)
  3. Las funciones se declaran con la palabra def y aunque la función o método retorne datos no necesitas especificarlo en la definición de la función.
  4. Debido a lo anterior y a lo del tipo dinámico de datos, la característica de POO sobre polimorfismo pierde un poco su lugar jejejjeeje.
  5. Hablando de métodos y constructores todos (nunca se te olvide) llevan el parametro self, que es una forma como de this (de Java)
  6. Para imprimir solo usa print!!! (no como ese largo System.out.println balalalalala .... )
  7. Existe el try/except en vez de try/catch
  8. Leer y escribir archivos ... qué les puedo decir ... es muy fácil!
  9. Conectarte a una base de datos tambien es muy fácil, solo debes buscar los módulos indicados :)
  10. La herencia es multiple!!! 
  11. No! Los comentarios no inician con // inician con #

Bueno y sobre eso un montón de cosas más que aún voy descubriendo, pero por lo general han sido cosas muy buenas e interesantes y se puede decir que ya le tengo cariño.

Antes de iniciar, pues lógicamente debemos instalar Python en muestra máquina para poder usar la consola interactiva (!Si, consola interactiva!)

Partí con Python 3.3, entiendo que va por la 3.4 pero bueno habrá que revisar, ya que mi primer tropiezo fué leer la documentación de Python 2.x y darme cuenta que el print se convirtió en un metodo, por ende se debía llamar con parentesis ()

Para Windows es fácil, solo descargate el instalador (Aquí) y lo instalas (valga la redundancia) y en tu menú de programas aparecerá Python 3.3, para mi fué mas bonito usar la opción IDLE (Python GUI) que está dentro del menú Python 3.3, con este puedes ejecutar tu código presionando la tecla F5

¡Aqui está el primer programa!