Aprende Python

Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis muy limpia y un código legible.

Python puede ser una buena alternativa para empezar a programar puesto que es un lenguaje muy sencillo, fácil y con una curva de aprendizaje buena.

La sintaxis es fácil de entender puesto que es cercana al lenguaje natural.

¿Qué curso/libro recomendáis para empezar?

Para responder esta pregunta primero debes responder a la siguiente situación: "¿Sabes programar en algún lenguaje? ¿Tienes inglés nivel medio?

Si no sabes programar, puedes empezar por los siguientes libros/tutoriales:

Si ya tienes conocimientos de programación te recomendamos:

Si no tienes problemas con el inglés, la oferta es mucho mayor:

¿Dónde puedo conseguir ayuda?

Ahora mismo la comunidad de Python en español se concentra en:

Si es de las primeras veces que preguntas en un foro:

  • No hace falta que preguntes «¿alguien me puede ayudar con X?» o «¿hay algún experto en X?», pregunta directamente.

  • Intenta agrupar toda la pregunta en un solo mensaje en vez de en muchos para facilitar su lectura y seguimiento.

  • Da detalles sobre el problema que estás intentando resolver e indica qué has probado ya.

  • Si recibes un error, describe con detalle el contexto e incluye el traceback completo en un pastebin (ver listado abajo).

  • Para que no vayamos a ciegas, es recomendable que pegues tu código en una de las webs de abajo y compartas la URL generada en el grupo o foro:

  • https://pastebin.com/

  • https://bpaste.net/

  • https://repl.it/languages/python3

  • https://trinket.io/python

  • https://gist.github.com/

O indicarnos tu repositorio de código en:

¿Cuál es el mejor editor/IDE para Python?

Si no has programado antes, los entornos de desarrollo más populares para principiantes de Python son:

Pero, si ya programas en otros lenguajes, sabrás que cada persona tiene sus preferencias, experiencia, sistema operativo, necesidades, etc. Lógicamente es importante sentirse cómodo con la herramienta que más vas a utilizar. Por lo tanto, en lugar de basarte en la opinión subjetiva de los demás (con otras preferencias, experiencias, ...), te resultará mucho más útil escoger una o varias (de entre los listados que te damos a continuación) y probar durante un tiempo cada una. Solo tú puedes contestar a la pregunta.

En Real Python han escrito una buena guía sobre entornos de desarrollo integrados y editores de código (en inglés).

En la misma wiki de Python.org hay un par de listados exhaustivos sobre editores e IDEs:

¿Qué biblioteca/framework recomendáis para...?

Antes de preguntar por una biblioteca o framework puedes echar un vistazo a las alternativas que hay en el ámbito de tu problema. Un recurso muy interesante para poder conocer dichas alternativas es awesome-python. Verás que cubre muchos ámbitos. Si preguntas en un foro por una biblioteca o framework intenta hacer una pregunta concreta. No es buena idea preguntar ¿qué es mejor X o Y? Sin información, la respuesta de cualquier participante será subjetiva. Matiza cuál es el problema que quieres resolver para que podamos ayudarte en la recomendación.

Desarrollo web

Python dispone de muchos frameworks para el desarrollo de webs y existen listas más específicas. Por ejemplo, sobre Django, Flask o Pyramid.

Extracción de datos de la web

Para la extracción de datos de la web tienes básicamente dos opciones:

También puede resultarte de ayuda el capítulo de Web scraping del libro Automate the boring stuff en el que también se utiliza Selenium.

Interfaces gráficas de usuario (GUI)

En caso de interesarte la programación de interfaces gráficas de usuario (GUI) para tu aplicación, puedes leer el listado de GUIs en la web de Python así como de las herramientas de diseño en la wiki de Python.

Dicen por ahí que Python es lento... ¿es cierto?

Es posible que te hayan contado cosas malas de Python pero ¿te crees todo lo que te dicen? Te recomendamos que leas un par de páginas para formarte una idea más realista:

¿Echas en falta algo?

Abre un issue en el repositorio para solicitar contenido nuevo. Comprueba primero que no se haya pedido antes (ver listado). ¡Gracias!