aprende python

Aprender Python en 10 minutos

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.

Características de Python

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.

Lo básico de Python

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 (<=).

Tipos de datos

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:

Estructuras de control de flujo

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).

Funciones

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:

Funciones, parametros *args y **kwargs

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:

Manipulación de cadenas

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:

Estructuras de datos (colecciones)

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.

Clases y objetos

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.

Excepciones

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:

Depurando con PDB

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.

Guia de estilo – PEP8

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:

  • Usar 4 espacios para indentar.
  • Tamaños de línea con un máximo de 79 caracteres.
  • Las funciones y las clases se deben separar con dos lineas en blanco, mientras que los métodos de clase solo con uno.
  • Los import deben de estar separados uno en cada línea. Se permite: from urllib2 import urlopen, Request
  • Las sentencias import deben de estar siempre en la parte superior del archivo agrupadas de la siguiente manera:
    • Librería estándar
    • Librerías de terceros
    • import’s de la aplicación local
  • Usar espacios alrededor de los operadores aritméticos, a excepción de cuando forman parte de los argumentos de una función.
  • No se deben de realizar comentarios obvios
  • No se deben comparar booleanos mediante ==

Resumen

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. Aunque continuaré escribiendo sobre Python en el futuro. En el caso de que quieras seguir profundizando en este magnifico lenguaje te recomiendo este excelente libro: Python 3. Los fundamentos del lenguaje.

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)

licencia-cc

Aprender Python en 10 minutos
5 (100%) 22 votos
10 comentarios
    • Miguel A. Gómez
      Miguel A. Gómez Dice:

      Gracias Bernardo!

      Corregido el error.

      Pdb es el debugger más básico que nos ofrece python viene incluido en la librería estandar. ipdb es una librería de terceros que mejora la funcionalidad de pdb añadiendole soporte para IPython, resaltado de sintaxis, autocompletado, etc. Personalmente suelo depurar con pdb, por lo que nunca me he tropezado con el problema que comentas.

      Saludos!

      Responder
  1. David
    David Dice:

    Muy interesante el artículo y un buen resumen para ahorrarte parrafadas largas que teniendo unos conocimientos básicos de programación te puedes ahorrar.
    Mil gracias!

    Responder

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *