Hace un tiempo me presentaron lo que se ha convertido en mi lenguaje de programación/scripting favorito: Python. Es difícil para un desarrollador de lenguajes encontrar algo que sea a la vez potente y fácil de escribir, algo que fluya naturalmente y que le permita centrarse en lo que es importante en su código. Python lo hace muy bien. Hace exactamente las suposiciones correctas, permitiéndole concentrarse más en lo que su programa debe hacer en lugar de exactamente cómo se debe hacer. No hay que preocuparse por la gestión de la memoria, la escritura de variables o esos malditos puntos y coma, simplemente hay que mantener la mente en la lógica de la aplicación.
Python se aleja bastante de algunos de los lenguajes más tradicionales como C/C++, encajando mejor con los lenguajes dinámicos como Ruby, Smalltalk, e incluso Javascript. La capacidad de terminar rápida y fácilmente tareas complejas en Python ha sido incluso el tema de algunas grandes web comics.
Nota – Python es un idioma interpretado, el intérprete puede ser descargado here. Todos los ejemplos de esta guía están escritos para Python 3.0 que esNOTtotalmente compatible con versiones anteriores. Si tiene problemas para ejecutar los ejemplos, compruebe su versión de Python.
Ejecutar los ejemplos
Incluiré varios ejemplos a lo largo de esta guía. Una vez instalado el intérprete de Python 3 (asegúrese de que es Python 3), el código se puede ejecutar de dos maneras:
Archivo de guión
Puede copiar/pegar el texto completo del código de ejemplo en un archivo de texto. Los archivos Python normalmente terminan en.py. Abra la línea de comandos y ejecute el ejecutable de Python seguido del nombre del archivo. En mi máquina Linux, yo corro:
python3.0 myfile.py
Esto debería ser aproximadamente el mismo en Windows y Mac también, aunque puede que tenga que especificar la ruta completa al intérprete de Python, como
C:Python30python.exe miarchivo.py
Intérprete interactivo
Python también puede ejecutarse en modo interactivo, donde puede escribir comandos uno a la vez para ver cómo responde. Esto puede ser muy útil para la resolución de problemas o para probar cosas nuevas. Ejecute el ejecutable de Python por su cuenta, sin ningún archivo de script, y se abrirá la ventana interactiva.
Ctrl-D saldrá del intérprete.
Espacio en blanco
Uno de los aspectos más inusuales de Python es el uso de espacios en blanco para indicar bloques de código. En lugar debegin yend, o agrupar por corchetes, Python usa la cantidad de sangría para decir cómo manejar bloques de código para looping y demás. Para mucha gente que viene de otros lenguajes de programación, esto parece una locura. Sin embargo, una vez que te acostumbras a la idea, se vuelve bastante natural y obliga a que tu código sea claro y legible. Todos indentamos bloques de código de todos modos (o al menos deberíamos hacerlo), por lo que tiene sentido que el lenguaje entienda que todas las frases alineadas forman parte del mismo bloque.
Como ventaja añadida, Python no es quisquilloso con la cantidad de sangrado que te gusta, ni siquiera con si prefieres las pestañas o los espacios. Puedes usar una pestaña, un espacio, dos espacios, 137 espacios, a Python no le importa. Todo lo que tienes que hacer es ser consistente. Comprobará su código y verá «El primer bloque de código está sangrado por 4 espacios, así que asumiré que cada bloque está sangrado por otros 4 espacios» o lo que sea el caso. Siempre y cuando seas consistente en la forma en que escribes tu código, Python es lo suficientemente flexible como para entenderlo. El siguiente ejemplo puede ayudar a aclarar las cosas.
1
2
3
4
5
x = 0 mientras que x 10: imprimir(x) x += 1 print("Todo hecho")
>
Desglose de código: El buclewhile le dice a Python que ejecute el siguiente bloque de código siempre y cuando se cumplan ciertas condiciones. En este caso, la condición es que x sea menor que 10. Continuará en bucle sobre ese bloque hasta que x llegue a 10. La «x += 1» se traduce en «x = x + 1» o «hacer x más grande por 1». Note que la línea final no se ejecuta hasta que elmientras que el bucle está terminado. Python ve las líneas sangradas y las trata como el grupo de código que se ejecutará en cada viaje a través del buclemientras que . La línea final no está sangrada con las otras, por lo que Python no actúa sobre ella hasta que el buclemientras que el bucle está terminado.
Escritura dinámica
Python no requiere que usted defina qué tipo de datos estarán en una variable. Puedes poner un entero, una cadena, un decimal, lo que quieras en una variable sin tener que decirle a Python lo que es. Python averiguará, basándose en lo que usted asigne, qué tipo de datos debe contener esa variable. El siguiente ejemplo debería demostrarlo:
1
2
3
4
5
6
7
8
x = 0 print("x es a: ",tipo(x)) x = 3.14 print("x es a: ",tipo(x)) x = "Hola" print("x es a: ",tipo(x)) x = [1,2,3,4] print("x es a: "tipo(x))
Lo que nos da la siguiente salida
Estructuras de datos
Las tres estructuras de datos que usará más comúnmente en python son
- Listas
- Tuplas
- Diccionarios
Listas
son muy parecidas a las matrices en otros idiomas. Son una secuencia unidimensional de elementos (aunque técnicamente puedes darles tantas dimensiones como quieras). Cada elemento de esa lista puede ser cambiado, movido y eliminado a voluntad sin tener que recrear la lista y sin causar ningún cambio en los otros elementos. Las listas pueden contener cualquier objeto Python, ya sea un número, una cadena o incluso otras listas. El siguiente código muestra algunos usos básicos de las listas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#crear una lista con algunos elementos de ejemplo myList =[1,2,3,4,5] #len() da un recuento de cuántos artículos tiene nuestra lista print("myList tiene", len(myList), " items.") #Los elementos de una lista no tienen que ser del mismo tipo myList.append("seis") myList.append("siete") miLista.append(8) #Hemos añadido tres nuevos artículos al final de la lista print("myList now has",len(myList), " items.") #Ahora veamos el ítem número 0 (primer ítem) print("first item:", myList[0]) # Y ahora el cuarto punto print("fourth item:",mylist[3]) #Entonces saca el último objeto de la lista print("y termina con" , myList.pop()) print("myList now has",len(myList), " items.") #Y ver lo que hemos hecho print("The complete contents are:", myList)
Tuplas
No voy a cubrir mucho las tuplas, ya que no se usarán en nuestro programa de ejemplo y son similares a las listas en muchos aspectos. Las tuplas, al igual que las listas, son una serie de elementos agrupados. La diferencia es que las tuplas no son mutables. No se pueden hacer cambios in situ en los elementos de una tupla, se debe recrear la tupla. Esto significa que no hay que «añadir» o «pop» u otras cosas que hagan cambios directamente en el contenido de la tupla. Si te ayuda, puedes pensar en las tuplas como una lista de sólo lectura (aunque eso no es muy preciso).
Diccionarios
Estos, me encantan. Cuando me enseñaron por primera vez sobre los diccionarios, recuerdo que pensé en algo así como «Bueno… Supongo que eso podría ser útil…. a veces». En una semana, los usé cada vez que pude.
En Python, los diccionarios son pares clave:valor. Es como una lista, excepto que cada elemento tiene dos partes, una clave y un valor. En el siguiente ejemplo, voy a hacer un diccionario para guardar información sobre mí mismo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
myDict = {} # Valor clave myDict["Nombre"] = "Josh" myDict["Ocupación"] = "Computer Geek" myDict["FavFood"] = "Especial Hani (sin lechuga)" myDict["FavBand"] = "Cualquier cosa menos los B-52s" myDict["Héroes"] = "Tom Waits, Kurt Vonnegut, SpaceBat" myDict["FavNumber"] = 3.141592 myDict[42] = "También es un buen número" print("Mi nombre:", myDict["Nombre"]) print("Mis héroes:", myDict["Héroes"]) print("Mi número favorito:", myDict["FavNumber"]) print ("¿Qué opino de 42?", myDict[42]) print() # Ahora cambiaré mi número favorito sin crear un # un diccionario completamente nuevo myDict["FavNumber"] += 100 print("Mi NUEVO número favorito:",myDict["FavNumber"])
Algunas cosas deben quedar claras en el ejemplo. En primer lugar, los diccionarios pueden mezclar y combinar datos de cualquier tipo. Sus claves y valores pueden ser de cualquier cosa. Incluso puedes volverte loco y poner cosas como funciones dentro de los diccionarios, pero eso está más allá del alcance de esta guía.
Segundo, los diccionarios son mutables. Puede añadir y eliminar elementos sobre la marcha sin necesidad de volver a crear el diccionario o afectar a otros elementos.
Si todavía no está seguro de la utilidad de los diccionarios, considere la posibilidad de utilizarlos para realizar un seguimiento de la configuración de un usuario. Puede tener un diccionario llamadosettings y almacenar cosas como nombre de usuario, dirección IP y resolución de pantalla. Cada vez que necesites hacer referencia a esos datos, puedes extraerlos de la configuración de [«username»], o de cualquier otra clave que hayas especificado.
Llévelo todo a casa
Ahora vamos a llegar a la acción real, creando un útil programa Python 3.0. Lo que este programa hará es tomar un número que represente dinero, y decirle cuánto dinero de bolsillo podría hacer esa cantidad. Es un ejercicio de codificación bastante común y es una buena manera de demostrar los conceptos que hemos cubierto hasta ahora.
Debo decirles ahora que este programa NO va a ser escrito de la mejor manera, mi objetivo es escribirlo usando los conceptos y operaciones más básicos posibles. Hay varias formas «mejores» de escribir esto, como usar funciones y el operador del módulo, e incluir la comprobación de errores, pero esta versión debería ser bastante fácil de entender.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39