Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.

Pythones una versión interpretada, interactiva y orientada a objetos (que utiliza classes), lenguaje de programación dinámico y fuertemente tipadoque se utiliza para una amplia gama de aplicaciones. Incorpora módulos, excepciones, tipificación dinámica, tipos de datos dinámicos de muy alto nivel y clases. Python combina una potencia notable con una sintaxis muy clara. Tiene interfaces para muchas llamadas del sistema y bibliotecas, así como para varios sistemas de ventanas, y es extensible en co c++. También se puede utilizar como lenguaje de extensión para aplicaciones que necesitan una interfaz programable. Finalmente, Python es portátil: se ejecuta en muchas variantes de Unix, en Mac y en Windows 2000 y posteriores.

El lenguaje viene con una gran biblioteca estándar que cubre áreas como procesamiento de cadenas (expresiones regulares, Unicode, cálculo de diferencias entre archivos), protocolos de Internet (HTTP, FTP, SMTP, XML-RPC, POP, IMAP y programación CGI), software ingeniería (pruebas unitarias, registro, creación de perfiles y análisis de código Python) e interfaces del sistema operativo (llamadas al sistema, sistemas de archivos y sockets TCP / IP). Mire la tabla de contenido de La biblioteca estándar de Pythonpara tener una idea de lo que está disponible. También está disponible una amplia variedad de extensiones de terceros. Consulte el índice de paquetes de Pythonpara encontrar paquetes que le interesen.

Python permite a los programadores expresar conceptos en menos líneas de código de lo que sería posible en muchos otros lenguajes, como C, y el lenguaje tiene construcciones destinadas a crear programas claros en una variedad de dominios.

Ejemplo:

Programa Python

print("Hello, Stack Overflow!")

Versus

Programa C

#include <stdio.h>
int main(void) {
    printf("Hello, Stack Overflow!");
    return 0;
}

Python fue creado originalmente por Guido van Rossumy lanzado por primera vez en 1991. Guido Van Rossum eligió Python como título provisional para el proyecto. , estar de un humor ligeramente irreverente (y un gran fanático de Flying Circus de Monty Python).

Python 2 (16 de octubre de 2000 - 1 de enero de 2020) ha sido oficialmente eliminado, y Python 3 (3 Diciembre de 2008) es la única versión principal compatible, mantenida y mejorada a partir del 1 de enero de 2020. Tenemos una comunidad de personas de ambos mundos, y si tiene una pregunta relacionada con una versión específica, considere mencionar la versión y la implementación que que está utilizando, al hacer una pregunta sobre Python (consulte la sección Recomendación de etiquetado más abajo)

Python admite múltiples paradigmas de programación, incluidos estilos de programación orientados a objetos, imperativos y funcionales. Cuenta con un sistema de tipo completamente dinámico y administración automática de memoria, similar a la de Scheme, Ruby, Perl y Tcl.

Al igual que otros lenguajes dinámicos, Python se utiliza a menudo como scripting, pero también se utiliza en una amplia variedad de contextos sin secuencias de comandos. Con herramientas de terceros, el código Python se puede empaquetar en programas ejecutables independientes. Los intérpretes de Python están disponibles para muchos sistemas operativos.

CPython, la implementación de referencia de Python, es un software gratuito y de código abierto. Tiene un modelo de desarrollo basado en la comunidad, al igual que casi todas sus implementaciones alternativas. Existe una amplia variedad de implementaciones más adecuadas para entornos o tareas específicos (consulte Implementaciones de Pythonen la wiki de Python).

La filosofía de Python se formula sucintamente en The Zen of Python, escrito por Tim Peters, que se puede leer emitiendo este comando, en el intérprete interactivo de Python:

>>> import this

A diferencia de muchos otros lenguajes, Python usa una sintaxis basada en sangría (en la cual las pestañas y los espacios no son intercambiables). Esto puede llevar un tiempo acostumbrarse a los programadores que están familiarizados con el uso de aparatos ortopédicos.

>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance
>>>

Para ayudar con la transición, se recomienda utilizar un editor de texto o IDE correctamente configurado. Python viene con un IDE básico llamado IDLE(python-idle), para comenzar. Otros ejemplos populares son el software benéfico Vim, el GNU Emacs gratuito, Eclipse + PyDev o PyCharm. Eche un vistazo a esta lista de comparación IDEpara ver muchas otras alternativas.

También hay una guía de estilo para Python, llamada PEP 8, cuyo objetivo es hacer que el código Python sea más legible. y consistente. Esta guía se sigue (debe seguir) en toda la comunidad de desarrollo de Python.


Recomendación de etiquetado:

Utilice la etiqueta pythonpara todas las preguntas relacionadas con Python. Si cree que su pregunta incluye problemas específicos de versiones individuales, use python-3.xo python-2.7, además de la etiqueta principal python. Si cree que su pregunta puede ser aún más específica, puede incluir una etiqueta específica de la versión como python-3.5o python-3.6, etc.

Además, considere incluir la etiqueta para la implementación específica (jython, pypy, etc.), si está utilizando otro que no sea cpython; se supone el uso de cpythona menos que se indique explícitamente lo contrario.


Referencias:


Instalación de paquetes externos:

  • Pippip

    La mayoría de las bibliotecas de Python que se utilizan para scripts simples y avanzados se descargan usando pip, el Python Package Installer. Le permite instalar y administrar paquetes adicionales que no forman parte de la biblioteca estándar de Python. La mayoría de las distribuciones de Python vienen con pip preinstalado. . Sintaxis general:

$ pip install SomePackage
[...]
Successfully installed SomePackage
  • easy_install easy-install

    easy_install fue lanzado en 2004, como parte de setuptools. Fue notable en ese momento por instalar paquetes de PyPI usando especificadores de requisitos e instalar dependencias automáticamente. Easy Install está en desuso. No lo uses. En su lugar, use pip.


Bibliotecas populares de uso general de Python:

  • Solicitudesrequests

    Una biblioteca simple de Python para hacer solicitudes HTTP. Las solicitudes se comercializan como "Para humanos". La biblioteca está destinada a simplificar y universalizar los muchos métodos de Python para realizar solicitudes HTTP de una manera legible y fácil de usar. La funcionalidad como mantener vivo y agrupación de conexiones se maneja automáticamente para proporcionar la máxima simplicidad.

  • Almohadapython-imaging-library

    Pillow se describe como una "bifurcación amigable" del módulo Python PIL, una biblioteca de imágenes no mantenida pero útil. La biblioteca utiliza API de C para proporcionar una interfaz fácil de Python para modificar y manipular archivos de imagen de muchas maneras diferentes.

  • Scrapyscrapy

    Scrapy es un marco rápido de rastreo y raspado web de alto nivel utilizado para rastrear sitios web y extraer datos estructurados de sus páginas. Se puede usar para una amplia gama de propósitos, desde minería de datos hasta monitoreo y pruebas automatizadas.

  • Beautiful Soupbeautifulsoupbs4

    Beautiful Soup es un paquete de Python para analizar documentos HTML y XML. Crea un árbol de análisis para páginas analizadas que se puede utilizar para extraer datos de HTML, lo que es útil para el raspado web. Está disponible para Python 2.7 y Python 3.

  • nltknltk

    Natural Language Toolkit, o NLTK, es una plataforma para crear aplicaciones de Python para trabajar con datos de lenguaje humano y el procesamiento de oraciones. Proporciona interfaces fáciles de usar a más de 50 recursos corporales y léxicos como WordNet, junto con un conjunto de bibliotecas de procesamiento de texto para clasificación, tokenización, derivación, etiquetado, análisis y razonamiento semántico, y proporciona envoltorios para la PNL de fuerza industrial. bibliotecas


frameworks webpopulares basados ​​en Python:

Si su pregunta tiene algo que ver con alguno de estos marcos, asegúrese de incluir la etiqueta adecuada.

  • Djangodjango

    El marco web para perfeccionistas (con plazos). Django facilita la creación de mejores aplicaciones web de forma más rápida y con menos código. Django es un marco web Python de alto nivel que fomenta el desarrollo rápido y un diseño limpio y pragmático. Le permite crear rápidamente aplicaciones web elegantes y de alto rendimiento. Django se enfoca en automatizar tanto como sea posible y adherirse al principio DRY (Don't Repeat Yourself).

  • Matrazflask

    Flask es un micro-framework ligero y una biblioteca de terceros para Python basada en Werkzeug, Jinja 2 y buenas intenciones. Proporciona una estructura monolítica y no impone dependencias, lo que permite un control más fino y una mayor libertad para el desarrollo.

  • cuartoquart

    El cuarto es una evolución de la API de Flask para trabajar con Asyncio y proporcionar una serie de características no presentes o posibles en Flask.

  • Tornadotornado

    Tornado es un marco web de Python y una biblioteca de red asincrónica. Al utilizar la red de E / S sin bloqueo, Tornado puede escalar hasta decenas de miles de conexiones abiertas, lo que lo hace ideal para sondeos largos, WebSockets y otras aplicaciones que requieren una conexión de larga duración para cada usuario.

  • CherryPycherrypy

    CherryPy es un marco web Pythonic orientado a objetos que permite a los desarrolladores crear aplicaciones web, de la misma manera que construirían cualquier otro programa Python orientado a objetos. Esto da como resultado una menor cantidad de código fuente que se desarrolla en menos tiempo. CherryPy se ha utilizado durante más de 17 años y se está utilizando en la producción en muchos sitios, desde los más simples hasta los más exigentes.

  • Pirámidepyramid

    Un marco web liviano que enfatiza la flexibilidad y el rápido desarrollo. Combina las mejores ideas de los mundos de Ruby, Python y Perl, proporcionando un marco web Python estructurado pero extremadamente flexible. También es uno de los primeros proyectos en aprovechar el estándar WSGI emergente, que permite una reutilización y flexibilidad extensas, pero solo si lo necesita.

  • TurboGearsturbogears

    TurboGears es un marco web escalable, que puede pasar de una configuración de modo mínimo a una aplicación web de pila completa. Fue creado en 2005 por Kevin Dangoor, y el desarrollo actual de TurboGears2 (turbogears2) está siendo dirigido por Mark Ramm. La versión estable actual de TurboGears es TurboGears 2.4.1, lanzada el 3 de septiembre de 2019

  • web.pyweb.py

    web.py es un marco web para Python que es tan simple como poderoso. web.py está en el dominio público: puede usarlo para cualquier propósito sin restricciones. web.py te permite escribir aplicaciones web en Python.

  • Grokgrok

    Construido sobre las bibliotecas Zope 3 existentes, pero tiene como objetivo proporcionar una curva de aprendizaje más fácil y una experiencia de desarrollo más ágil. Grok hace esto poniendo énfasis en la convención sobre la configuración y DRY (No se repita).

  • Botella bottle

    La botella es un micro marco web WSGI rápido, simple y liviano para Python. Se distribuye como un módulo de archivo único y no tiene dependencias distintas de la Biblioteca estándar de Python.

  • web2pyweb2py

    web2py es un marco completo de código abierto gratuito para el desarrollo rápido de aplicaciones basadas en web rápidas, escalables, seguras y portátiles basadas en bases de datos.

  • Falconfalconframework

    Falcon es un marco web mínimo de Python para crear microservicios, backends de aplicaciones y marcos de nivel superior y alienta el estilo arquitectónico REST. Tiene versiones comunitarias y comerciales.

  • Retorcidotwisted

    Twisted es un motor de red de código abierto dirigido por eventos. Es útil para implementar clientes y servidores y se escala a sitios web grandes y a dispositivos integrados. Twisted facilita la implementación de aplicaciones de red personalizadas.


Frameworks populares de la GUI de Python basados en Python

  • Kivykivy

    Kivy es un marco acelerado de OpenGL ES 2 para la creación de nuevas interfaces de usuario. Es compatible con múltiples plataformas, a saber, Windows, Mac OS X, Linux, Android iOS y Raspberry Pi. Es de código abierto y viene con más de 20 widgets en su kit de herramientas. Hay objetos de material adicionales disponibles a través de KivyMD.

  • PyQTpyqt

    PyQT es uno de los enlaces de Python multiplataforma preferidos que implementan la biblioteca Qt para el marco de desarrollo de aplicaciones Qt (propiedad de Nokia). Actualmente, PyQT está disponible para Unix / Linux, Windows, Mac OS X y Sharp Zaurus. Combina lo mejor de Python y Qt y depende del programador decidir si crear un programa codificando o utilizando Qt Designer para crear diálogos visuales.

    Está disponible tanto en licencia comercial como en licencia GPL. Aunque algunas características pueden no estar disponibles en la versión gratuita, si su aplicación es de código abierto, puede usarla bajo la licencia gratuita.

    La última versión de PyQt es v5

  • Tkintertkinter

    Tkinter se incluye comúnmente con Python, usando Tk y es el marco de GUI estándar de Python. Es popular por su simplicidad e interfaz gráfica de usuario. Es de código abierto y está disponible bajo la licencia de Python. Una de las ventajas de elegir Tkinter es que, dado que viene por defecto, hay una gran cantidad de recursos, tanto códigos como libros de referencia. Además, dado que la comunidad es antigua y activa, hay muchos usuarios que pueden ayudarte en caso de dudas.

  • PyGUIpygui

    PyGUI es un marco multiplataforma de aplicaciones gráficas para Unix, Macintosh y Windows. En comparación con algunos otros marcos de GUI, PyGUI es, con mucho, el más simple y ligero de todos, ya que la API está puramente sincronizada con Python. PyGUI inserta muy poco código entre la plataforma GUI y su aplicación Python, por lo tanto, la visualización de la aplicación generalmente muestra la GUI natural de la plataforma.


Bibliotecas populares de computación matemática / científica en Python

  • NumPynumpy

    NumPy es el paquete fundamental para la computación científica con Python. Contiene entre otras cosas:

    • un poderoso objeto de matriz N-dimensional
    • sofisticadas funciones (de transmisión)
    • herramientas para integrar C / C ++ y código Fortran
    • útil álgebra lineal, Fourier transformar y capacidades de números aleatorios

    Estas características también permiten usar NumPy en aplicaciones de bases de datos de uso general.

  • SciPyscipy

    SciPy es una biblioteca de código abierto para el lenguaje de programación Python, que consta de algoritmos matemáticos y funciones que a menudo se usan en ciencia e ingeniería. SciPy incluye algoritmos y herramientas para tareas tales como optimización, agrupamiento, transformadas discretas de Fourier, álgebra lineal, procesamiento de señales y procesamiento de imágenes multidimensionales. SciPy está estrechamente relacionado con NumPy y depende de muchas funciones de NumPy, incluida una matriz multidimensional que se utiliza como estructura de datos básica en SciPy.

  • matplotlibmatplotlib

    matplotlib es una biblioteca de trazado para el lenguaje de programación Python y su extensión matemática numérica NumPy. Proporciona una API orientada a objetos para incrustar trazados en aplicaciones, utilizando kits de herramientas GUI de uso general como wxPython, Qt o GTK. También hay una interfaz procesal "pylab", basada en una máquina de estado (como OpenGL), diseñada para parecerse mucho a la de MATLAB.

  • Pandaspandas

    Pandas es una biblioteca de código abierto con licencia BSD que proporciona estructuras de datos y herramientas de análisis de datos de alto rendimiento y fáciles de usar para el lenguaje de programación Python. Pandas integra muchas otras funciones de bibliotecas, a saber, las operaciones de matriz de NumPy y las capacidades de trazado de Matplotlib. 10 minutos para Pandas a>es un buen tutorial para la primera exposición a Pandas.

  • theano theano

    Theano es una biblioteca basada en Python-C ampliamente utilizada adecuada para tareas matemáticas altamente computacionales debido a las optimizaciones que realiza en el código de la interfaz Python, lo que la hace altamente optimizada usando sus rutinas basadas en C. También es una biblioteca muy popular para los investigadores de aprendizaje automático. Presenta una diferenciación automática altamente optimizada, facilitando la implementación de funciones altamente complicadas y calculando sus gradientes sin errores.

  • Licuadorablender

    Blender es una suite de animación 3D gratuita y de código abierto. Admite la totalidad de la canalización 3D: modelado, aparejo, animación, simulación, renderizado, composición y seguimiento de movimiento, incluso edición de video y creación de juegos.

  • scikit-learnscikit-learn

    scikit-learn es una biblioteca de aprendizaje automático gratuita y de código abierto escrita en Python. Es compatible con la capacitación y la prueba de muchos tipos diferentes de modelos de aprendizaje automático, junto con algunas técnicas básicas de procesamiento de datos.

  • TensorFlowtensorflow

    TensorFlow es una biblioteca de software de código abierto, desarrollada por el equipo de Google Brain. Es una biblioteca matemática simbólica, utilizada principalmente para aplicaciones de aprendizaje automático, como las redes neuronales.


Soluciones de extensión C populares:

Con la extensión C, puede hacer que su código de Python sea más rápido. Si su pregunta tiene algo que ver con alguna de las siguientes soluciones, asegúrese de incluir la etiqueta adecuada.

  • ctypesctypes

    ctypes es un paquete de Python que envuelve las bibliotecas C .dll / .so en Python puro.

  • SWIGswig

    SWIG es un compilador de interfaz que conecta programas escritos en C y C ++ con lenguajes de script como Python.

  • Cythoncython

    Cython es un compilador estático optimizador tanto para el lenguaje de programación Python como para el lenguaje de programación extendido Cython (basado en Pyrex). Hace que escribir extensiones C para Python sea tan fácil como el propio Python.


Comunidad

Salas de chat

  • Charle en el canal de IRC dedicado #python en Freenode para todo lo relacionado con Python. Consulte la lista Python IRCde un canal alternativo específico, si está interesado.

  • Charle sobre Python con otros usuarios de Stack Overflow en la sala de chat de Python.

Otros sitios


Libros de programación gratuitos de Python


Aprendizaje interactivo de Python

  • Codecademy: aprenda los fundamentos de Python y la programación dinámica
  • CodeSkulptor: IDE interactivo en línea para la programación de Python 2
  • CodeSkulptor 3: IDE interactivo en línea para la programación de Python 3
  • Coursera: curso en línea de introducción a la programación interactiva de Python
  • CheckiO: un mundo de juegos que puedes explorar utilizando tus habilidades de programación en Python
  • Dataquest: cursos interactivos de Python para ciencia de datos
  • Repl.it: intérprete en línea para Python 2 y 3 que simplifica guardar y compartir código
  • PyCharm Edu: una aplicación de escritorio que ofrece aprendizaje interactivo de Python
  • Python interactivo: incluye una versión interactiva modificada de Cómo pensar como un informático
  • Tutor de Python: visualización y / o codificación en vivo en Python
  • Círculos de ciencias de la computación: aprende Python 3 básico de forma semi-interactiva.

Cursos en línea de Python


Tutoriales en video de Python


Python para las cientificas


IDE en línea de Python

  • ideone: un IDE en línea con compatibilidad con otros idiomas populares.
  • repl: entorno de programación instantánea para su idioma favorito
  • Python Shell: consola en línea de PythonAnywhere
  • pythonfiddle: Python Cloud IDE
  • pyfiddle: consola en línea de Python 2.7 / 3.6

Código de calidad

  • Codacy: revisión de código automatizada para enviar un código mejor y más rápido.
  • Codecov: panel de cobertura de código.
  • CodeFactor: revisión de código automatizada para Git.
  • Horizontal: métricas de código Python continuas alojadas.

Logotipo oficial


Podcasts activos

Podcasts inactivos