Software Crafters ® | Creado con 🖤 para elevar el nivel de la conversación sobre programación en español| Legal
Antes de empezar tengo que advertirte que ningún lenguaje de programación, por simple que sea, puede aprenderse en profundidad en tan poco tiempo, a no ser que se requiera de experiencia previa en otros lenguajes. Dominar la programación precisa de experiencia, lo cual a su vez requiere de un tiempo mínimo que permita afianzar las estructuras mentales necesarias para entender la secuencia lógica a seguir para desarrollar un programa o proyecto de software.
El objetivo de este artículo no es enseñar a programar, sino tratar de exponer en 10 minutos los elementos más importantes del lenguaje Python, sería algo así como una mezcla entre un tutorial y una cheatsheet. Haré uso de una REPL para exponer los ejemplos, con lo que podrás modificar y jugar con ellos sin tener que salir de la entrada. Es totalmente recomendable seguir el artículo en un ordenador o tablet, ya que la REPL por limitaciones de espacio no es tan cómoda de utilizar en un móvil.
Python un lenguaje multiparadigma, que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es interpretado, de tipado dinámico y multiplataforma.
La sintaxis de Python es extremadamente "limpia", no se requiere de ningún caracter que indique el final de una secuencia y los bloques se definen a través de la indentación del código. Los comentarios de una sola línea se definen con el carácter almohadilla (#) y las cadenas de multiples líneas (""") se suelen emplear para escribir comentarios multilínea.
Los operadores aritméticos +, - y / significan en Python lo mismo que en matemáticas. El asterisco (*) es el símbolo para la multiplicación, el % se usa para obtener el módulo, // para división entera y ** es el símbolo para las potencias. También disponemos de los operadores incrementar (+=) y decrementar (-=).
Existen tres operadores lógicos: and, or, y not. La semántica (significado) de estos operadores es similar a sus significados en inglés (en español “y”, “o” y “no”).
La asignación de valores, como en la mayoría de lenguajes, se realiza con el símbolo "igual" (=). La doble igualdad (==) se usa para comprobar que dos valores son iguales, además disponemos de estos operadores de comparación: distinto que (!=), mayor que (>), menor que (<), mayor o igual (>=) y menor o igual (<=).
Los tipos de datos básicos en Python son los numéricos formados por enteros, los reales y los complejos; las cadenas de texto y los booleanos. La función type nos devuelve el tipo:
Las sentencias de control de flujo, son bloques de código en los que se agrupan instrucciones de manera controlada. Por un lado tenemos las estruturas condicionales (if, if .. else, if ..elif ..else) y por otro las estructuras iterativas (for, while).
Una función no es más que un bloque de código reutilizable encargado de realizar una determinada tarea. Para definir una función en Python debemos utilizar la palabra reservada "def" seguido del nombre de la función y los parámetros los indicamos entre parentesis. Veamos varios ejemplos:
En el ejemplo anterior hemos visto varias formas de definir y ejecutar a las funciones en Python, ya sea con parámetros por con valores por defecto o keywords como argumentos. Nos faltaría ver como llamarlas con colecciones como argumentos, una forma muy común de pasar valores a las funciones en Python, y que en muchas ocasiones cuesta entender. Para ello debemos tener claro que las tupla como colección de argumentos se define con *args y el diccionario con **kwargs. Veamos un ejemplo en la REPL:
Las cadenas en Python pueden definirse entre comillas simples o dobles. En la REPL se muestra un ejemplo de la mayoría de las operaciones que podemos realizar ellas:
Las colecciones son un tipo de datos diseñados específicamente para agrupar objetos y llevar a cabo tareas con ellos. Las estructuras de datos más utilizadas en Python son las listas, tuplas (listas inmutables) y los diccionarios, aunque personalmente también suelo usar mucho los conjuntos (sets).
No todas las estructuras de datos exponen exactamente las mismas operaciones, por ejemplo una lista no deja buscar por clave (si bien sí por índice) y un conjunto no deja buscar ni por una cosa ni por otra.
El siguiente playground está dividido en tres ficheros, main.py desde el que se importa listas.py y diccionarios.py, para ver los resultados de uno u otro, elimina o comenta su respectivo import.
En programación orientada a objetos (POO), un objeto es una entidad que agrupa un estado y una funcionalidad relacionada. El estado se define a través de las variables denominadas atributos y la funcionalidad a través de funciones denominadas en POO cómo métodos. Por otro lado, una clase, no es más que una plantilla genérica a partir de la cuál instanciamos los objetos. Dicho de otra manera, una clase es una abstracción en la que se define el comportamiento que va a tener el objeto.
En Python, las clases se declaran mediante la palabra reservada class seguida del nombre de la clase, la clase base de la cual hereda, si no extiende de ninguna debe hacerlo de object; a continuación dos puntos (:), luego el indentado y el cuerpo de la clase.
El método constructor de la clase se define con la palabra clave __init__ y al igual que el resto de métodos definidos en la clase recibe como primer parámetro self, el interprete de python requiere de este argumento para referenciarlos como métodos de instancia.
No soy muy fan de usar excepciones, pero es cierto que con Python hay momentos en los que su uso no se puede obviar. Las excepciones en Python se manejan esencialmente con try-except:
El depurador por defecto de python es pdb , nos permite inspeccionar nuestro código de forma interactiva. La forma más simple de utilizarlo es ejecutando
pdb.set_trace()
:
import pdb a = "aaa" pdb.set_trace() b = "bbb" c = "ccc" final = a + b + c print final
Los comandos básicos del depurador son: "n"(next) para ejecutar la siguiente sentencia, para mostrar el valor de las variables "p"(print), si queremos ir paso a paso dentro de las subrutinas utilizariamos "s"(step), y por último "q"(quit) para salir.
En Python existen las denominadas PEP's (Python Enhancement Proposals), en concreto la PEP 8 hace referencia a las convenciones de estilo de programación en Python.
Entre las convenciones principales, destacan:
from urllib2 import urlopen, Request
==
Este tutorial no pretende ser una guía exhaustiva sobre Python, aunque he condensado bastante información en poco más de 1000 palabras, me he dejado muchísimos elementos en el tintero, cómo expresiones regulares, ficheros, testing, POO, elementos de programación funcional.
Espero haber facilitado tu transición a Python, y si ya lo conocías espero que el artículo te sirva como referencia. Si te ha gustado la entrada valora y comparte en tus redes sociales. No dudes en comentar dudas, aportes o sugerencias, estaré encantado de responder.
Este artículo se distribuye bajo una Licencia Creative Commons Reconocimiento-CompartirIgual 4.0 Internacional (CC BY-SA 4.0)