stringtranslate.com

Python (lenguaje de programación)

Python es un lenguaje de programación de alto nivel y de propósito general . Su filosofía de diseño enfatiza la legibilidad del código con el uso de sangrías significativas . [31]

Python se escribe dinámicamente y se recolecta basura . Admite múltiples paradigmas de programación , incluida la programación estructurada (particularmente procedimental ), orientada a objetos y funcional . A menudo se describe como un lenguaje "con pilas incluidas" debido a su completa biblioteca estándar . [32] [33]

Guido van Rossum comenzó a trabajar en Python a finales de los años 1980 como sucesor del lenguaje de programación ABC y lo lanzó por primera vez en 1991 como Python 0.9.0. [34] Python 2.0 se lanzó en 2000. Python 3.0, lanzado en 2008, fue una revisión importante que no era completamente compatible con versiones anteriores. Python 2.7.18, lanzado en 2020, fue la última versión de Python 2. [35]

Python se ubica constantemente como uno de los lenguajes de programación más populares y ha ganado un uso generalizado en la comunidad de aprendizaje automático . [36] [37] [38] [39]

Historia

El diseñador de Python, Guido van Rossum , en OSCON 2006

Python fue concebido a finales de la década de 1980 [40] por Guido van Rossum en Centrum Wiskunde & Informatica (CWI) en los Países Bajos como sucesor del lenguaje de programación ABC , que se inspiró en SETL , [41] capaz de manejar excepciones e interactuar con el sistema operativo Amoeba . [10] Su implementación comenzó en diciembre de 1989. [42] Van Rossum asumió la responsabilidad exclusiva del proyecto, como desarrollador principal, hasta el 12 de julio de 2018, cuando anunció sus "vacaciones permanentes" de sus responsabilidades como " dictador benévolo de por vida " de Python. ", un título que la comunidad Python le otorgó para reflejar su compromiso a largo plazo como principal tomador de decisiones del proyecto. [43] En enero de 2019, los desarrolladores activos del núcleo de Python eligieron un Consejo Directivo de cinco miembros para liderar el proyecto. [44] [45]

Python 2.0 se lanzó el 16 de octubre de 2000, con muchas características nuevas importantes, como comprensión de listas , recolección de basura con detección de ciclos , recuento de referencias y compatibilidad con Unicode . [46] Python 3.0, lanzado el 3 de diciembre de 2008, con muchas de sus características principales respaldadas a Python 2.6.x [47] y 2.7.x. Las versiones de Python 3 incluyen la 2to3utilidad que automatiza la traducción del código Python 2 a Python 3. [48]

El final de vida útil de Python 2.7 se fijó inicialmente para 2015, luego se pospuso hasta 2020 debido a la preocupación de que una gran cantidad de código existente no pudiera trasladarse fácilmente a Python 3. [49] [50] No hay más parches de seguridad u otras mejoras se lanzarán para ello. [51] [52] Actualmente, solo se admite la versión 3.8 y posteriores (los problemas de seguridad de 2023 se solucionaron, por ejemplo, en 3.7.17, la versión final 3.7.x [53] ). Si bien Python 2.7 y versiones anteriores no son oficialmente compatibles, una implementación diferente no oficial de Python, PyPy , continúa admitiendo Python 2, es decir, "2.7.18+" (más 3.9 y 3.10), con el signo más (al menos algunas) " actualizaciones de seguridad respaldadas ". ". [54]

En 2021 (y nuevamente dos veces en 2022), se aceleraron las actualizaciones de seguridad, ya que todas las versiones de Python eran inseguras (incluida la 2.7 [55] ) debido a problemas de seguridad que conducían a una posible ejecución remota de código [56] y al envenenamiento de la caché web . [57] En 2022, Python 3.10.4 y 3.9.12 se aceleraron [58] y 3.8.13, debido a muchos problemas de seguridad. [59] Cuando se lanzó Python 3.9.13 en mayo de 2022, se anunció que la serie 3.9 (que se une a las series anteriores 3.8 y 3.7) solo recibiría correcciones de seguridad en el futuro. [60] El 7 de septiembre de 2022, se realizaron cuatro nuevas versiones debido a un posible ataque de denegación de servicio : 3.10.7, 3.9.14, 3.8.14 y 3.7.14. [61] [62]

A partir de octubre de 2023, Python 3.12 es la versión estable, y 3.12 y 3.11 son las únicas versiones con soporte activo (en lugar de solo seguridad). Los cambios notables en 3.11 desde 3.10 incluyen una mayor velocidad de ejecución del programa y un mejor informe de errores. [63]

Python 3.12 agrega sintaxis (y de hecho, todos los Python desde al menos 3.5 agregan algo de sintaxis) al lenguaje, la nueva palabra clave (suave) type(las versiones recientes han agregado mucho soporte de escritura, por ejemplo, nuevo tipo de operador de unión en 3.10) y 3.11 para manejo de excepciones, y 3.10 las palabras clave matchy case(suaves), para declaraciones de coincidencia de patrones estructurales . Python 3.12 también elimina módulos y funciones obsoletos, y las versiones futuras también lo harán, consulte la sección Desarrollo a continuación.

Python 3.11 afirma ser entre un 10 y un 60 % más rápido que Python 3.10, y Python 3.12 añade otro 5 % a eso. También ha mejorado los mensajes de error y muchos otros cambios.

Desde el 27 de junio de 2023 , Python 3.8 es la versión compatible más antigua de Python (aunque en la fase de "soporte de seguridad"), debido a que Python 3.7 llegó al final de su vida útil . [64]

Filosofía y características del diseño.

Python es un lenguaje de programación multiparadigma . La programación orientada a objetos y la programación estructurada son totalmente compatibles, y muchas de sus características admiten la programación funcional y la programación orientada a aspectos (incluida la metaprogramación [65] y los metaobjetos ). [66] Muchos otros paradigmas son compatibles a través de extensiones, incluido el diseño por contrato [67] [68] y la programación lógica . [69]

Python utiliza escritura dinámica y una combinación de recuento de referencias y un recolector de basura con detección de ciclos para la gestión de la memoria . [70] Utiliza resolución dinámica de nombres ( enlace tardío ), que vincula nombres de métodos y variables durante la ejecución del programa.

Su diseño ofrece cierto soporte para la programación funcional en la tradición Lisp . Tiene filtery mapfunciones reduce; enumerar comprensiones , diccionarios , conjuntos y expresiones generadoras . [71] La biblioteca estándar tiene dos módulos ( itertoolsy functools) que implementan herramientas funcionales tomadas de Haskell y Standard ML . [72]

Su filosofía central se resume en el Zen de Python (PEP 20), que incluye aforismos como: [73]

Sin embargo, las características de Python violan regularmente estos principios y recibieron críticas por agregar un lenguaje innecesario. [74] [75] Las respuestas a estas críticas son que el Zen de Python es una guía más que una regla. [76] Las nuevas características han sido tan controvertidas que Guido van Rossum renunció como Dictador Benevolente de por vida luego de las críticas por la adición del operador de expresión de asignación en Python 3.8. [77] [78]

Sin embargo, en lugar de incorporar todas sus funciones en su núcleo, Python fue diseñado para ser altamente extensible a través de módulos. Esta modularidad compacta lo ha hecho particularmente popular como medio para agregar interfaces programables a aplicaciones existentes. La visión de Van Rossum de un lenguaje central pequeño con una gran biblioteca estándar y un intérprete fácilmente extensible surgió de sus frustraciones con ABC , que defendía el enfoque opuesto. [40]

Python pretende esforzarse por lograr una sintaxis y una gramática más simples y menos confusas, al tiempo que ofrece a los desarrolladores la posibilidad de elegir su metodología de codificación. En contraste con el lema de Perl " hay más de una forma de hacerlo ", Python adopta el lema "debería haber una, y preferiblemente sólo una, forma obvia de hacerlo". filosofía. [73] En la práctica, sin embargo, Python proporciona muchas formas de lograr la misma tarea. Hay, por ejemplo, al menos tres formas de formatear una cadena literal, sin tener certeza de cuál debería usar un programador. [79] Alex Martelli , miembro de la Python Software Foundation y autor del libro Python, escribió: "Describir algo como 'inteligente' no se considera un cumplido en la cultura Python". [80]

Los desarrolladores de Python normalmente se esfuerzan por evitar la optimización prematura y rechazan parches en partes no críticas de la implementación de referencia de CPython que ofrecerían aumentos marginales en la velocidad a costa de la claridad. [81] La velocidad de ejecución se puede mejorar moviendo funciones críticas para la velocidad a módulos de extensión escritos en lenguajes como C, o usando un compilador justo a tiempo como PyPy . También es posible realizar una compilación cruzada con otros lenguajes, pero o bien no proporciona toda la velocidad que se podría esperar, ya que Python es un lenguaje muy dinámico, o bien se compila un subconjunto restringido de Python y posiblemente la semántica esté alterada. ligeramente cambiado. [82]

Los desarrolladores de Python pretenden que su uso sea divertido. Esto se refleja en su nombre (un tributo al grupo de comedia británico Monty Python [83] ) y en enfoques ocasionalmente divertidos de tutoriales y materiales de referencia, como el uso de los términos "spam" y "huevos" (una referencia a un Bosquejo de Monty Python ) en ejemplos, en lugar de los utilizados con frecuencia "foo" y "bar" . [84] [85] Un neologismo común en la comunidad Python es pythonic , que tiene una amplia gama de significados relacionados con el estilo del programa. El código "Pythonic" puede utilizar bien los modismos de Python , ser natural o mostrar fluidez en el lenguaje, o ajustarse a la filosofía minimalista de Python y su énfasis en la legibilidad. El código que es difícil de entender o que se lee como una transcripción aproximada de otro lenguaje de programación se denomina no pitónico . [86] [87]

Sintaxis y semántica

Python está destinado a ser un lenguaje de fácil lectura. Su formato es visualmente ordenado y, a menudo, utiliza palabras clave en inglés mientras que otros idiomas utilizan puntuación. A diferencia de muchos otros lenguajes, no utiliza llaves para delimitar bloques y se permiten puntos y coma después de las declaraciones, pero rara vez se utilizan. Tiene menos excepciones sintácticas y casos especiales que C o Pascal . [88]

Sangría

Python utiliza sangría de espacios en blanco , en lugar de llaves o palabras clave, para delimitar bloques . Después de ciertas declaraciones se produce un aumento en la sangría; una disminución en la sangría significa el final del bloque actual. [89] Por lo tanto, la estructura visual del programa representa con precisión su estructura semántica. [90] Esta característica a veces se denomina regla del fuera de juego . Algunos otros idiomas utilizan la sangría de esta manera; pero en la mayoría, la sangría no tiene significado semántico. El tamaño de sangría recomendado es de cuatro espacios. [91]

Declaraciones y flujo de control

Las declaraciones de Python incluyen:

La declaración de asignación ( =) vincula un nombre como referencia a un objeto separado asignado dinámicamente . Posteriormente, las variables pueden rebotarse en cualquier momento a cualquier objeto. En Python, un nombre de variable es un titular de referencia genérico sin un tipo de datos fijo ; sin embargo, siempre hace referencia a algún objeto con un tipo. A esto se le llama escritura dinámica , a diferencia de los lenguajes de escritura estática , donde cada variable puede contener solo un valor de un tipo determinado.

Python no admite optimización de llamadas de cola ni continuaciones de primera clase y, según Van Rossum, nunca lo hará. [94] [95] Sin embargo, se proporciona un mejor soporte para la funcionalidad tipo corrutina al extender los generadores de Python . [96] Antes de la versión 2.5, los generadores eran iteradores perezosos ; los datos se pasaron unidireccionalmente fuera del generador. A partir de Python 2.5, es posible devolver datos a una función generadora; y desde la versión 3.3, se puede pasar a través de múltiples niveles de pila. [97]

Expresiones

Las expresiones de Python incluyen:

En Python, la distinción entre expresiones y declaraciones se aplica rígidamente, a diferencia de lenguajes como Common Lisp , Scheme o Ruby . Esto lleva a duplicar algunas funciones. Por ejemplo:

Las declaraciones no pueden ser parte de una expresión, por lo que las listas y otras comprensiones o expresiones lambda , todas ellas expresiones, no pueden contener declaraciones. Un caso particular es que una declaración de asignación como no puede formar parte de la expresión condicional de una declaración condicional. Esto tiene la ventaja de evitar un error clásico de C que consiste en confundir un operador de asignación con un operador de igualdad en las condiciones: es un código C sintácticamente válido (pero probablemente no intencionado), pero provoca un error de sintaxis en Python.a = 1===if (c = 1) { ... }if c = 1: ...

Métodos

Los métodos de objetos son funciones adjuntas a la clase del objeto; la sintaxis es, para métodos y funciones normales, azúcar sintáctico para . Los métodos de Python tienen un parámetro explícito para acceder a los datos de la instancia , en contraste con el self (o ) implícito en algunos otros lenguajes de programación orientados a objetos (por ejemplo, C++ , Java, Objective-C , Ruby ). [106] Python también proporciona métodos, a menudo llamados métodos dunder (debido a que sus nombres comienzan y terminan con guiones bajos dobles), para permitir que las clases definidas por el usuario modifiquen la forma en que son manejadas por las operaciones nativas, incluida la longitud, la comparación y las operaciones aritméticas. conversión de tipos. [107]instance.method(argument)Class.method(instance, argument)selfthis

Mecanografía

La jerarquía de tipos estándar en Python 3

Python usa tipificación pato y tiene objetos tipificados pero nombres de variables sin tipificar. Las restricciones de tipo no se verifican en tiempo de compilación ; más bien, las operaciones sobre un objeto pueden fallar, lo que significa que no es del tipo adecuado. A pesar de estar tipado dinámicamente , Python está fuertemente tipado , lo que prohíbe operaciones que no estén bien definidas (por ejemplo, agregar un número a una cadena) en lugar de intentar silenciosamente darles sentido.

Python permite a los programadores definir sus propios tipos mediante clases , utilizadas con mayor frecuencia para la programación orientada a objetos . Las nuevas instancias de clases se construyen llamando a la clase (por ejemplo, o ), y las clases son instancias de la metaclase (en sí misma una instancia de sí misma), lo que permite la metaprogramación y la reflexión .SpamClass()EggsClass() type

Antes de la versión 3.0, Python tenía dos tipos de clases (ambas usando la misma sintaxis): estilo antiguo y estilo nuevo , [108] las versiones actuales de Python solo admiten el nuevo estilo semántico.

Python admite anotaciones de tipos opcionales . [4] [109] Estas anotaciones no son impuestas por el lenguaje, pero pueden ser utilizadas por herramientas externas como mypy para detectar errores. [110] [111] Mypy también admite un compilador de Python llamado mypyc, que aprovecha las anotaciones de tipo para la optimización. [112]

Operaciones aritmeticas

Python tiene los símbolos habituales para los operadores aritméticos ( +,,, ), el operador de división de piso -y la operación de módulo (donde el resto puede ser negativo, por ejemplo ). También tiene para exponenciación , por ejemplo, y , y un operador de multiplicación de matrices . [116] Estos operadores funcionan como en las matemáticas tradicionales; con las mismas reglas de precedencia , los operadores son infijos ( y también pueden ser unarios para representar números positivos y negativos respectivamente).*/// %4 % -3 == -2**5**3 == 1259**0.5 == 3.0@+-

La división entre números enteros produce resultados de punto flotante. El comportamiento de la división ha cambiado significativamente con el tiempo: [117]

En términos de Python, /es división verdadera (o simplemente división ) y //es división de piso. /Antes de la versión 3.0 es la división clásica . [117]

Redondear hacia el infinito negativo, aunque es diferente de la mayoría de los lenguajes, añade coherencia. Por ejemplo, significa que la ecuación siempre es cierta. También significa que la ecuación es válida tanto para valores positivos como negativos de . Sin embargo, mantener la validez de esta ecuación significa que si bien el resultado de está, como se esperaba, en el intervalo semiabierto [0, b ), donde es un entero positivo, tiene que estar en el intervalo ( b , 0] cuando es negativo [118](a + b)//b == a//b + 1b*(a//b) + a%b == aaa%bbb

Python proporciona una roundfunción para redondear un flotante al entero más cercano. Para desempate , Python 3 usa ronda para igualar : round(1.5)y round(2.5)ambos producen 2. [119] Las versiones anteriores a la 3 usaban redondeo desde cero : round(0.5)es 1.0, round(-0.5)es −1.0. [120]

Python permite expresiones booleanas con múltiples relaciones de igualdad de una manera consistente con el uso general en matemáticas. Por ejemplo, la expresión a < b < cprueba si aes menor que by bes menor que c. [121] Los lenguajes derivados de C interpretan esta expresión de manera diferente: en C, la expresión primero evaluaría a < b, dando como resultado 0 o 1, y ese resultado luego se compararía con c. [122]

Python utiliza aritmética de precisión arbitraria para todas las operaciones con números enteros. El Decimaltipo/clase en el decimalmódulo proporciona números decimales de punto flotante con una precisión arbitraria predefinida y varios modos de redondeo. [123] La Fractionclase del fractionsmódulo proporciona precisión arbitraria para números racionales . [124]

Debido a la extensa biblioteca matemática de Python y a la biblioteca de terceros NumPy que amplía aún más las capacidades nativas, se utiliza con frecuencia como lenguaje de programación científico para ayudar en problemas como el procesamiento y la manipulación de datos numéricos. [125] [126]

Ejemplos de programación

"¡Hola Mundo!" programa :

imprimir ( '¡Hola mundo!' )

Programa para calcular el factorial de un número entero positivo:

n  =  int ( input ( 'Escriba un número y se imprimirá su factorial: ' ))si  norte  <  0 : elevar  ValueError ( 'Debes ingresar un número entero no negativo' )factores  =  1para  i  en  el rango ( 2 ,  n  +  1 ): factorial  *=  yoimprimir ( factorial )

Bibliotecas

La gran biblioteca estándar de Python [127] proporciona herramientas adecuadas para muchas tareas y comúnmente se cita como una de sus mayores fortalezas. Para las aplicaciones orientadas a Internet, se admiten muchos formatos y protocolos estándar, como MIME y HTTP . Incluye módulos para crear interfaces gráficas de usuario , conectarse a bases de datos relacionales , generar números pseudoaleatorios , aritmética con decimales de precisión arbitraria, [123] manipular expresiones regulares y pruebas unitarias .

Algunas partes de la biblioteca estándar están cubiertas por especificaciones (por ejemplo, la implementación de la interfaz de puerta de enlace del servidor web (WSGI) wsgirefsigue PEP 333 [128]) , pero la mayoría están especificadas por su código, documentación interna y conjuntos de pruebas . Sin embargo, debido a que la mayor parte de la biblioteca estándar es código Python multiplataforma, solo es necesario modificar o reescribir unos pocos módulos para implementaciones variantes.

Al 14 de noviembre de 2022, el Python Package Index (PyPI), el repositorio oficial de software Python de terceros, contiene más de 415 000 [129] paquetes con una amplia gama de funcionalidades, que incluyen:

Entornos de desarrollo

La mayoría de las implementaciones de Python (incluido CPython) incluyen un bucle de lectura, evaluación e impresión (REPL), lo que les permite funcionar como un intérprete de línea de comandos para el cual los usuarios ingresan declaraciones secuencialmente y reciben resultados de inmediato.

Python también viene con un entorno de desarrollo integrado (IDE) llamado IDLE , que está más orientado a principiantes.

Otros shells, incluidos IDLE e IPython , agregan capacidades adicionales como autocompletado mejorado, retención del estado de la sesión y resaltado de sintaxis .

Además de los entornos de desarrollo integrados de escritorio estándar , incluidos PyCharm, IntelliJ Idea, Visual Studio Code, etc., existen IDE basados ​​en navegadores web , incluido SageMath , para desarrollar programas relacionados con las ciencias y las matemáticas; PythonAnywhere , un entorno de alojamiento y IDE basado en navegador; y Canopy IDE, un IDE comercial que enfatiza la informática científica . [130]

Implementaciones

Implementación de referencia

CPython es la implementación de referencia de Python. Está escrito en C y cumple con el estándar C89 (Python 3.11 usa C11 [131] ) con varias características seleccionadas de C99 . CPython incluye sus propias extensiones de C, pero las extensiones de terceros no se limitan a versiones anteriores de C; por ejemplo, pueden implementarse con C11 o C++. [132] [133] ) Compila programas Python en un código de bytes intermedio [134] que luego es ejecutado por su máquina virtual . [135] CPython se distribuye con una gran biblioteca estándar escrita en una combinación de C y Python nativo, y está disponible para muchas plataformas, incluido Windows (a partir de Python 3.9, el instalador de Python deliberadamente no se instala en Windows 7 y 8; [ 136] [137] Windows XP fue compatible hasta Python 3.5) y la mayoría de los sistemas modernos tipo Unix , incluidos macOS (y Apple M1 Mac, desde Python 3.9.1, con instalador experimental) y soporte no oficial para, por ejemplo, VMS . [138] La portabilidad de la plataforma fue una de sus primeras prioridades. [139] (Durante el desarrollo de Python 1 y 2, incluso OS/2 y Solaris fueron compatibles, [140] pero desde entonces se ha abandonado el soporte para muchas plataformas).

Otras implementaciones

Implementaciones no compatibles

Se han desarrollado otros compiladores de Python justo a tiempo, pero ahora no son compatibles:

Compiladores cruzados a otros idiomas

Hay varios compiladores/ transpiladores de lenguajes de objetos de alto nivel, con Python sin restricciones, un subconjunto restringido de Python o un lenguaje similar a Python como lenguaje fuente:

Especializado:

Proyectos más antiguos (o que no deben usarse con Python 3.x y la sintaxis más reciente):

Actuación

En EuroSciPy '13 se presentó una comparación de rendimiento de varias implementaciones de Python en una carga de trabajo no numérica (combinatoria). [168] El rendimiento de Python en comparación con otros lenguajes de programación también se compara con The Computer Language Benchmarks Game . [169]

Desarrollo

El desarrollo de Python se lleva a cabo en gran medida a través del proceso de propuesta de mejora de Python (PEP), el mecanismo principal para proponer nuevas características importantes, recopilar comentarios de la comunidad sobre problemas y documentar las decisiones de diseño de Python. [170] El estilo de codificación de Python se trata en PEP 8. [171] La comunidad de Python y el consejo directivo revisan y comentan los PEP destacados. [170]

La mejora del lenguaje se corresponde con el desarrollo de la implementación de referencia de CPython. La lista de correo python-dev es el foro principal para el desarrollo del lenguaje. Los problemas específicos se discutieron originalmente en el rastreador de errores Roundup alojado en la fundación. [172] En 2022, todos los problemas y debates se migraron a GitHub . [173] El desarrollo se llevó a cabo originalmente en un repositorio de código fuente autohospedado que ejecutaba Mercurial , hasta que Python se mudó a GitHub en enero de 2017. [174]

Las versiones públicas de CPython son de tres tipos, que se distinguen por la parte del número de versión que se incrementa:

Muchas versiones alfa, beta y candidatas a versiones también se publican como vistas previas y para pruebas antes de las versiones finales. Aunque existe un cronograma aproximado para cada lanzamiento, a menudo se retrasan si el código no está listo. El equipo de desarrollo de Python monitorea el estado del código ejecutando el gran conjunto de pruebas unitarias durante el desarrollo. [180]

La principal conferencia académica sobre Python es PyCon . También existen programas especiales de tutoría de Python, como PyLadies .

Python 3.12 se eliminó, wstrlo que significa que las extensiones de Python [181] deben modificarse, [182] y 3.10 agregaron patrones que coinciden con el lenguaje. [183]

Python 3.12 eliminó algunos módulos obsoletos y se eliminarán más en el futuro, obsoletos a partir de 3.13; El código de formato 'u' de matriz ya obsoleto se emitirá DeprecationWarningdesde 3.13 y se eliminará en Python 3.16. En su lugar, se debe utilizar el código de formato 'w'. Parte de ctypes también está en desuso y http.server.CGIHTTPRequestHandleremitirá una advertencia de desaprobación y se eliminará en 3.15. El uso de ese código ya tiene un alto potencial de errores de seguridad y funcionalidad. Partes del módulo de escritura están en desuso, por ejemplo, la creación de una typing.NamedTupleclase usando argumentos de palabras clave para indicar los campos y tales (y más) no estarán permitidos en Python 3.15.

Generadores de documentación API

Las herramientas que pueden generar documentación para la API de Python incluyen pydoc (disponible como parte de la biblioteca estándar), Sphinx , Pdoc y sus bifurcaciones, Doxygen y Graphviz , entre otras. [184]

Nombrar

El nombre de Python se deriva del grupo de comedia británico Monty Python , a quien el creador de Python, Guido van Rossum, disfrutó mientras desarrollaba el lenguaje. Las referencias a Monty Python aparecen con frecuencia en el código y la cultura de Python; [185] por ejemplo, las variables metasintácticas que se utilizan a menudo en la literatura de Python son spam y huevos en lugar de las tradicionales foo y bar . [185] [186] La documentación oficial de Python también contiene varias referencias a las rutinas de Monty Python. [187] [188] A los usuarios de Python a veces se les llama "Pythonistas". [189]

El prefijo Py- se usa para mostrar que algo está relacionado con Python. Ejemplos del uso de este prefijo en nombres de aplicaciones o bibliotecas de Python incluyen Pygame , un enlace de SDL a Python (comúnmente usado para crear juegos); PyQt y PyGTK , que unen Qt y GTK a Python respectivamente; y PyPy , una implementación de Python escrita originalmente en Python.

Popularidad

Desde 2003, Python se ha clasificado constantemente entre los diez lenguajes de programación más populares en el Índice de la comunidad de programación TIOBE, donde en diciembre de 2022 era el lenguaje más popular (por delante de C, C++ y Java ). [38] Fue seleccionado Lenguaje de programación del año (por "el mayor aumento de calificaciones en un año") en 2007, 2010, 2018 y 2020 (el único lenguaje que lo ha hecho cuatro veces a partir de 2020 [190] ) .

Un estudio empírico encontró que los lenguajes de programación, como Python, son más productivos que los lenguajes convencionales, como C y Java, para problemas de programación que involucran manipulación de cadenas y búsqueda en un diccionario, y determinó que el consumo de memoria era a menudo "mejor que Java y no mucho peor que C o C++". [191]

Las grandes organizaciones que utilizan Python incluyen Wikipedia , Google , [192] Yahoo! , [193] CERN , [194] NASA , [195] Facebook , [196] Amazon , Instagram , [197] Spotify , [198] y algunas entidades más pequeñas como ILM [199] e ITA . [200] El sitio de redes sociales de noticias Reddit fue escrito principalmente en Python. [201]

Usos

Impulsado por Python

Python puede servir como lenguaje de programación para aplicaciones web , por ejemplo mediante mod_wsgi para el servidor web Apache . [202] Con Web Server Gateway Interface , se ha desarrollado una API estándar para facilitar estas aplicaciones. Los marcos web como Django , Pylons , Pyramid , TurboGears , web2py , Tornado , Flask , Bottle y Zope ayudan a los desarrolladores en el diseño y mantenimiento de aplicaciones complejas. Pyjs y IronPython se pueden utilizar para desarrollar el lado del cliente de aplicaciones basadas en Ajax. SQLAlchemy se puede utilizar como asignador de datos a una base de datos relacional. Twisted es un framework para programar comunicaciones entre ordenadores, y es utilizado (por ejemplo) por Dropbox .

Bibliotecas como NumPy , SciPy y Matplotlib permiten el uso eficaz de Python en informática científica, [203] [204] con bibliotecas especializadas como Biopython y Astropy que proporcionan funcionalidades específicas de dominio. SageMath es un sistema de álgebra informática con una interfaz de portátil programable en Python: su biblioteca cubre muchos aspectos de las matemáticas , incluyendo álgebra , combinatoria , matemáticas numéricas , teoría de números y cálculo . [205] OpenCV tiene enlaces de Python con un rico conjunto de características para visión por computadora y procesamiento de imágenes . [206]

Python se usa comúnmente en proyectos de inteligencia artificial y proyectos de aprendizaje automático con la ayuda de bibliotecas como TensorFlow , Keras , Pytorch , scikit-learn y el lenguaje Logic ProbLog . [207] [208] [209] [210] [211] Como lenguaje de programación con una arquitectura modular , sintaxis simple y herramientas de procesamiento de texto enriquecido, Python se usa a menudo para el procesamiento del lenguaje natural . [212]

La combinación de Python y Prolog ha demostrado ser particularmente útil para aplicaciones de IA, ya que Prolog proporciona capacidades de razonamiento y representación del conocimiento. El sistema Janus, en particular, explota las similitudes entre estos dos lenguajes, en parte debido a su uso de escritura dinámica y la naturaleza recursiva simple de sus estructuras de datos. Las aplicaciones típicas de esta combinación incluyen el procesamiento del lenguaje natural, la respuesta visual a consultas, el razonamiento geoespacial y el manejo de datos de la web semántica. [213] El sistema Natlog, implementado en Python, utiliza gramáticas de cláusulas definidas (DCG) como generadores de mensajes para generadores de texto a texto como GPT3 y generadores de texto a imagen como DALL-E o Stable Diffusion. [214]

Python también se puede utilizar para la interfaz gráfica de usuario (GUI) mediante bibliotecas como Tkinter . [215] [216]

Python también se puede utilizar para crear juegos, con bibliotecas como Pygame , que pueden crear juegos 2D.

Python se ha integrado con éxito en muchos productos de software como lenguaje de programación, incluido el software de métodos de elementos finitos como Abaqus , modeladores paramétricos 3D como FreeCAD , paquetes de animación 3D como 3ds Max , Blender , Cinema 4D , Lightwave , Houdini , Maya , modo . , MotionBuilder , Softimage , el compositor de efectos visuales Nuke , programas de imágenes 2D como GIMP , [217] Inkscape , Scribus y Paint Shop Pro , [218] y programas de notación musical como Scorewriter y Capella . GNU Debugger usa Python como una bonita impresora para mostrar estructuras complejas como contenedores de C++. Esri promueve Python como la mejor opción para escribir scripts en ArcGIS . [219] También se ha utilizado en varios videojuegos, [220] [221] y ha sido adoptado como el primero de los tres lenguajes de programación disponibles en Google App Engine , siendo los otros dos Java y Go . [222]

Muchos sistemas operativos incluyen Python como componente estándar. Se entrega con la mayoría de las distribuciones de Linux , [223] AmigaOS 4 (usando Python 2.7), FreeBSD (como paquete), NetBSD y OpenBSD (como paquete) y se puede usar desde la línea de comandos (terminal). Muchas distribuciones de Linux usan instaladores escritos en Python: Ubuntu usa el instalador Ubiquity , mientras que Red Hat Linux y Fedora Linux usan el instalador Anaconda . Gentoo Linux utiliza Python en su sistema de gestión de paquetes , Portage .

Python se utiliza ampliamente en la industria de la seguridad de la información , incluido el desarrollo de exploits. [224] [225]

La mayor parte del software Sugar para One Laptop per Child XO, desarrollado en Sugar Labs a partir de 2008 , está escrito en Python. [226] El proyecto de computadora de placa única Raspberry Pi ha adoptado Python como su principal lenguaje de programación de usuario.

LibreOffice incluye Python y pretende reemplazar Java con Python. Su proveedor de secuencias de comandos Python es una característica principal [227] desde la versión 4.0 del 7 de febrero de 2013.

Idiomas influenciados por Python

El diseño y la filosofía de Python han influido en muchos otros lenguajes de programación:

Las prácticas de desarrollo de Python también han sido emuladas por otros lenguajes. Por ejemplo, la práctica de exigir un documento que describa la justificación y los problemas relacionados con un cambio en el lenguaje (en Python, un PEP) también se utiliza en Tcl , [239] Erlang , [240] y Swift. [241]

Ver también

Referencias

  1. ^ "Preguntas frecuentes generales sobre Python: documentación de Python 3.9.2". docs.python.org . Archivado desde el original el 24 de octubre de 2012 . Consultado el 28 de marzo de 2021 .
  2. ^ "Python 0.9.1 parte 21/01". Archivos alt.sources. Archivado desde el original el 11 de agosto de 2021 . Consultado el 11 de agosto de 2021 .
  3. ^ "¿Por qué Python es un lenguaje dinámico y también un lenguaje fuertemente tipado?". Wiki de Python . Archivado desde el original el 14 de marzo de 2021 . Consultado el 27 de enero de 2021 .
  4. ^ ab "PEP 483 - La teoría de las sugerencias tipográficas". Python.org . Archivado desde el original el 14 de junio de 2020 . Consultado el 14 de junio de 2018 .
  5. ^ "prueba - Paquete de pruebas de regresión para Python - Documentación de Python 3.7.13". docs.python.org . Archivado desde el original el 17 de mayo de 2022 . Consultado el 17 de mayo de 2022 .
  6. ^ "plataforma - Acceso a los datos de identificación de la plataforma subyacente - Documentación de Python 3.10.4". docs.python.org . Archivado desde el original el 17 de mayo de 2022 . Consultado el 17 de mayo de 2022 .
  7. ^ "Descargar Python para otras plataformas". Python.org . Consultado el 18 de agosto de 2023 .
  8. ^ Holth, Moore (30 de marzo de 2014). "PEP 0441: mejora de la compatibilidad con aplicaciones Python ZIP". Archivado desde el original el 26 de diciembre de 2018 . Consultado el 12 de noviembre de 2015 .
  9. ^ "Idioma Starlark". Archivado desde el original el 15 de junio de 2020 . Consultado el 25 de mayo de 2019 .
  10. ^ ab "¿Por qué se creó Python en primer lugar?". Preguntas frecuentes generales sobre Python . Fundación de software Python. Archivado desde el original el 24 de octubre de 2012 . Consultado el 22 de marzo de 2007 . Tenía amplia experiencia en la implementación de un lenguaje interpretado en el grupo ABC de CWI y al trabajar con este grupo aprendí mucho sobre diseño de lenguaje. Este es el origen de muchas características de Python, incluido el uso de sangría para agrupar declaraciones y la inclusión de tipos de datos de muy alto nivel (aunque todos los detalles son diferentes en Python).
  11. ^ "Manual de referencia de Ada 83 (declaración de aumento)". Archivado desde el original el 22 de octubre de 2019 . Consultado el 7 de enero de 2020 .
  12. ^ ab Kuchling, Andrew M. (22 de diciembre de 2006). "Entrevista con Guido van Rossum (julio de 1998)". amk.ca. _ Archivado desde el original el 1 de mayo de 2007 . Consultado el 12 de marzo de 2012 . Pasé un verano en el Centro de Investigación de Sistemas de DEC, lo que me presentó Modula-2+; Allí se estaba redactando el informe final del Módulo-3 aproximadamente al mismo tiempo. Lo que aprendí allí más tarde apareció en el manejo de excepciones de Python, los módulos y el hecho de que los métodos contienen explícitamente "self" en su lista de parámetros. El corte de cuerdas provino de Algol-68 e Icon.
  13. ^ abc "itertools - Funciones que crean iteradores para bucles eficientes - Documentación de Python 3.7.1". docs.python.org . Archivado desde el original el 14 de junio de 2020 . Consultado el 22 de noviembre de 2016 . Este módulo implementa una serie de bloques de construcción de iteradores inspirados en construcciones de APL, Haskell y SML.
  14. ^ van Rossum, Guido (1993). "Introducción a Python para programadores de UNIX/C". Actas de la NLUUG Najaarsconferentie (Grupo holandés de usuarios de UNIX) . CiteSeerX 10.1.1.38.2023 . Aunque el diseño de C está lejos de ser ideal, su influencia en Python es considerable. 
  15. ^ ab "Clases". El tutorial de Python . Fundación de software Python. Archivado desde el original el 23 de octubre de 2012 . Consultado el 20 de febrero de 2012 . Es una mezcla de los mecanismos de clase que se encuentran en C++ y Modula-3.
  16. ^ Lundh, Fredrik. "Llamada por objeto". effbot.org . Archivado desde el original el 23 de noviembre de 2019 . Consultado el 21 de noviembre de 2017 . reemplace "CLU" con "Python", "registro" con "instancia" y "procedimiento" con "función o método", y obtendrá una descripción bastante precisa del modelo de objetos de Python.
  17. ^ Simionato, Michele. "El orden de resolución del método Python 2.3". Fundación de software Python. Archivado desde el original el 20 de agosto de 2020 . Consultado el 29 de julio de 2014 . El método C3 en sí no tiene nada que ver con Python, ya que fue inventado por personas que trabajaban en Dylan y se describe en un artículo destinado a personas que balbucean.
  18. ^ Kuchling, AM "CÓMO de programación funcional". Documentación de Python v2.7.2 . Fundación de software Python. Archivado desde el original el 24 de octubre de 2012 . Consultado el 9 de febrero de 2012 . Las listas por comprensión y las expresiones generadoras [...] son ​​una notación concisa para tales operaciones, tomada del lenguaje de programación funcional Haskell.
  19. ^ Schemenauer, Neil; Peters, Tim; Hetland, Magnus Lie (18 de mayo de 2001). "PEP 255 - Generadores simples". Propuestas de mejora de Python . Fundación de software Python. Archivado desde el original el 5 de junio de 2020 . Consultado el 9 de febrero de 2012 .
  20. ^ "Más herramientas de control de flujo". Documentación de Python 3 . Fundación de software Python. Archivado desde el original el 4 de junio de 2016 . Consultado el 24 de julio de 2015 . Por demanda popular, se han agregado a Python algunas características que se encuentran comúnmente en lenguajes de programación funcionales como Lisp. Con la palabra clave lambda se pueden crear pequeñas funciones anónimas.
  21. ^ "re - Operaciones de expresiones regulares - Documentación de Python 3.10.6". docs.python.org . Archivado desde el original el 18 de julio de 2018 . Consultado el 6 de septiembre de 2022 . Este módulo proporciona operaciones de coincidencia de expresiones regulares similares a las que se encuentran en Perl.
  22. ^ "CaféScript". cafescript.org . Archivado desde el original el 12 de junio de 2020 . Consultado el 3 de julio de 2018 .
  23. ^ "Tutorial del lenguaje de programación Genie". Archivado desde el original el 1 de junio de 2020 . Consultado el 28 de febrero de 2020 .
  24. ^ "Influencias de Perl y Python en JavaScript". www.2ality.com . 24 de febrero de 2013. Archivado desde el original el 26 de diciembre de 2018 . Consultado el 15 de mayo de 2015 .
  25. ^ Rauschmayer, Axel. "Capítulo 3: La naturaleza de JavaScript; Influencias". O'Reilly, hablando JavaScript . Archivado desde el original el 26 de diciembre de 2018 . Consultado el 15 de mayo de 2015 .
  26. ^ ab "Por qué creamos a Julia". Sitio web de Julia . Febrero de 2012. Archivado desde el original el 2 de mayo de 2020 . Consultado el 5 de junio de 2014 . Queremos algo tan utilizable para la programación general como Python [...]
  27. ^ ab Krill, Paul (4 de mayo de 2023). "El lenguaje Mojo combina Python y MLIR para el desarrollo de IA". InfoMundo . Archivado desde el original el 5 de mayo de 2023 . Consultado el 5 de mayo de 2023 .
  28. ^ Equipo Ring (4 de diciembre de 2017). "Anillo y otros idiomas". ring-lang.net . ring-lang. Archivado desde el original el 25 de diciembre de 2018 . Consultado el 4 de diciembre de 2017 .
  29. ^ Bini, Ola (2007). Proyectos prácticos JRuby on Rails Web 2.0: llevando Ruby on Rails a la plataforma Java . Berkeley: Prensa. pag. 3.ISBN _ 978-1-59059-881-8.
  30. ^ Lattner, Chris (3 de junio de 2014). "Página de inicio de Chris Lattner". Chris Lattner. Archivado desde el original el 25 de diciembre de 2018 . Consultado el 3 de junio de 2014 . El lenguaje Swift es el producto del esfuerzo incansable de un equipo de expertos en lenguaje, gurús de la documentación, ninjas de optimización de compiladores y un grupo interno increíblemente importante de pruebas internas que brindaron comentarios para ayudar a refinar y probar ideas. Por supuesto, también se benefició enormemente de las experiencias ganadas con esfuerzo por muchos otros lenguajes en el campo, extrayendo ideas de Objective-C, Rust, Haskell, Ruby, Python, C#, CLU y muchos otros para enumerarlos.
  31. ^ Kuhlman, Dave. "Un libro de Python: ejercicios principiantes de Python, Python avanzado y Python". Sección 1.1. Archivado desde el original (PDF) el 23 de junio de 2012.
  32. ^ "Acerca de Python". Fundación de software Python. Archivado desde el original el 20 de abril de 2012 . Consultado el 24 de abril de 2012 ., segunda sección "Los fanáticos de Python usan la frase "baterías incluidas" para describir la biblioteca estándar, que cubre todo, desde el procesamiento asincrónico hasta archivos zip".
  33. ^ "PEP 206 - Biblioteca avanzada de Python". Python.org . Archivado desde el original el 5 de mayo de 2021 . Consultado el 11 de octubre de 2021 .
  34. ^ Rossum, Guido Van (20 de enero de 2009). "La historia de Python: una breve cronología de Python". La historia de Python . Archivado desde el original el 5 de junio de 2020 . Consultado el 5 de marzo de 2021 .
  35. ^ Peterson, Benjamin (20 de abril de 2020). "Python 2.7.18, la última versión de Python 2". Información privilegiada de Python . Archivado desde el original el 26 de abril de 2020 . Consultado el 27 de abril de 2020 .
  36. ^ "Encuesta para desarrolladores de Stack Overflow 2022". Desbordamiento de pila . Archivado desde el original el 27 de junio de 2022 . Consultado el 12 de agosto de 2022 .
  37. ^ "Infografía sobre el estado del ecosistema de desarrolladores en 2020". JetBrains: herramientas de desarrollo para profesionales y equipos . Archivado desde el original el 1 de marzo de 2021 . Consultado el 5 de marzo de 2021 .
  38. ^ ab "Índice TIOBE". TIOBE. Archivado desde el original el 25 de febrero de 2018 . Consultado el 3 de enero de 2023 . El índice de la comunidad de programación TIOBE es un indicador de la popularidad de los lenguajes de programación.Actualizado según sea necesario.
  39. ^ "Índice de popularidad del lenguaje de programación PYPL". pypl.github.io . Archivado desde el original el 14 de marzo de 2017 . Consultado el 26 de marzo de 2021 .
  40. ^ ab Venners, Bill (13 de enero de 2003). "La creación de Python". Desarrollador Artima . Artima. Archivado desde el original el 1 de septiembre de 2016 . Consultado el 22 de marzo de 2007 .
  41. ^ van Rossum, Guido (29 de agosto de 2000). "SETL (era: tibio con respecto a los literales de rango)". Python-Dev (lista de correo). Archivado desde el original el 14 de julio de 2018 . Consultado el 13 de marzo de 2011 .
  42. ^ van Rossum, Guido (20 de enero de 2009). "Una breve cronología de Python". La historia de Python . Archivado desde el original el 5 de junio de 2020 . Consultado el 20 de enero de 2009 .
  43. ^ Fairchild, Carlie (12 de julio de 2018). "Guido van Rossum renuncia a su papel de dictador benévolo de por vida de Python". Diario de Linux . Archivado desde el original el 13 de julio de 2018 . Consultado el 13 de julio de 2018 .
  44. ^ "PEP 8100". Fundación de software Python. Archivado desde el original el 4 de junio de 2020 . Consultado el 4 de mayo de 2019 .
  45. ^ "PEP 13 - Gobernanza del lenguaje Python". Python.org . Archivado desde el original el 27 de mayo de 2021 . Consultado el 25 de agosto de 2021 .
  46. ^ Kuchling, soy; Zadka, Moshe (16 de octubre de 2000). "Novedades de Python 2.0". Fundación de software Python. Archivado desde el original el 23 de octubre de 2012 . Consultado el 11 de febrero de 2012 .
  47. ^ van Rossum, Guido (5 de abril de 2006). "PEP 3000-Python 3000". Propuestas de mejora de Python . Fundación de software Python. Archivado desde el original el 3 de marzo de 2016 . Consultado el 27 de junio de 2009 .
  48. ^ "2to3: traducción automatizada de código Python 2 a 3". docs.python.org . Archivado desde el original el 4 de junio de 2020 . Consultado el 2 de febrero de 2021 .
  49. ^ "PEP 373: calendario de lanzamiento de Python 2.7". python.org . Archivado desde el original el 19 de mayo de 2020 . Consultado el 9 de enero de 2017 .
  50. ^ "PEP 466: mejoras de seguridad de red para Python 2.7.x". python.org . Archivado desde el original el 4 de junio de 2020 . Consultado el 9 de enero de 2017 .
  51. ^ "Python 2 al atardecer". Python.org . Archivado desde el original el 12 de enero de 2020 . Consultado el 22 de septiembre de 2019 .
  52. ^ "PEP 373: calendario de lanzamiento de Python 2.7". Python.org . Archivado desde el original el 13 de enero de 2020 . Consultado el 22 de septiembre de 2019 .
  53. ^ "Python versión Python 3.7.17". Python.org . Consultado el 18 de agosto de 2023 .
  54. ^ mattip (25 de diciembre de 2023). "Lanzamiento de PyPy v7.3.14". PyPy . Consultado el 5 de enero de 2024 .
  55. ^ "CVE-2021-3177". Portal del cliente de Red Hat . Archivado desde el original el 6 de marzo de 2021 . Consultado el 26 de febrero de 2021 .
  56. ^ "CVE-2021-3177". CVE . Archivado desde el original el 27 de febrero de 2021 . Consultado el 26 de febrero de 2021 .
  57. ^ "CVE-2021-23336". CVE . Archivado desde el original el 24 de febrero de 2021 . Consultado el 26 de febrero de 2021 .
  58. ^ Langa, Łukasz (24 de marzo de 2022). "Python 3.10.4 y 3.9.12 ahora están disponibles fuera de lo previsto". Información privilegiada de Python . Archivado desde el original el 21 de abril de 2022 . Consultado el 19 de abril de 2022 .
  59. ^ Langa, Łukasz (16 de marzo de 2022). "Python 3.10.3, 3.9.11, 3.8.13 y 3.7.13 ahora están disponibles con contenido de seguridad". Información privilegiada de Python . Archivado desde el original el 17 de abril de 2022 . Consultado el 19 de abril de 2022 .
  60. ^ Langa, Łukasz (17 de mayo de 2022). "Python 3.9.13 ya está disponible". Información privilegiada de Python . Archivado desde el original el 17 de mayo de 2022 . Consultado el 21 de mayo de 2022 .
  61. ^ Langa, Łukasz (7 de septiembre de 2022). "Las versiones de Python 3.10.7, 3.9.14, 3.8.14 y 3.7.14 ya están disponibles". Información privilegiada de Python . Archivado desde el original el 13 de septiembre de 2022 . Consultado el 16 de septiembre de 2022 .
  62. ^ "CVE-2020-10735". CVE . Archivado desde el original el 20 de septiembre de 2022 . Consultado el 16 de septiembre de 2022 .
  63. ^ corbet (24 de octubre de 2022). "Python 3.11 lanzado [LWN.net]". lwn.net . Consultado el 15 de noviembre de 2022 .
  64. ^ "Pitón". fin de vida.fecha . 10 de agosto de 2023 . Consultado el 15 de agosto de 2023 .
  65. ^ The Cain Gang Ltd. "Metaclases de Python: ¿Quién? ¿Por qué? ¿Cuándo?" (PDF) . Archivado desde el original (PDF) el 30 de mayo de 2009 . Consultado el 27 de junio de 2009 .
  66. ^ "3.3. Nombres de métodos especiales". La referencia del lenguaje Python . Fundación de software Python. Archivado desde el original el 15 de diciembre de 2018 . Consultado el 27 de junio de 2009 .
  67. ^ "PyDBC: condiciones previas del método, condiciones posteriores del método e invariantes de clase para Python". Archivado desde el original el 23 de noviembre de 2019 . Consultado el 24 de septiembre de 2011 .
  68. ^ "Contratos para Python". Archivado desde el original el 15 de junio de 2020 . Consultado el 24 de septiembre de 2011 .
  69. ^ "PyDatalog". Archivado desde el original el 13 de junio de 2020 . Consultado el 22 de julio de 2012 .
  70. ^ "Ampliación e incorporación del intérprete de Python: recuento de referencias". Docs.python.org. Archivado desde el original el 18 de octubre de 2012 . Consultado el 5 de junio de 2020 . Dado que Python hace un uso intensivo de y , necesita una estrategia para evitar pérdidas de memoria, así como el uso de la memoria liberada. El método elegido se llama recuento de referencias .malloc()free()
  71. ^ ab Hettinger, Raymond (30 de enero de 2002). "PEP 289 - Expresiones generadoras". Propuestas de mejora de Python . Fundación de software Python. Archivado desde el original el 14 de junio de 2020 . Consultado el 19 de febrero de 2012 .
  72. ^ "6.5 itertools: funciones que crean iteradores para bucles eficientes". Docs.python.org. Archivado desde el original el 14 de junio de 2020 . Consultado el 22 de noviembre de 2016 .
  73. ^ ab Peters, Tim (19 de agosto de 2004). "PEP 20 - El Zen de Python". Propuestas de mejora de Python . Fundación de software Python. Archivado desde el original el 26 de diciembre de 2018 . Consultado el 24 de noviembre de 2008 .
  74. ^ Lutz, Mark (enero de 2022). "Cambios en Python 2014+". Aprendiendo Python . Consultado el 25 de febrero de 2024 .
  75. ^ Thomas, Robin (3 de mayo de 2023). "Python no es un gran lenguaje de programación". Esencia de GitHub . Consultado el 25 de febrero de 2024 .
  76. ^ "Confusión sobre una regla en El Zen de Python". Ayuda de Python: debates en Python.org . 3 de mayo de 2022 . Consultado el 25 de febrero de 2024 .
  77. ^ Ambi, Chetan (4 de julio de 2021). "El operador de morsa Python más controvertido". Python simplificado . Consultado el 5 de febrero de 2024 .
  78. ^ Grifski, Jeremy (24 de mayo de 2020). "La controversia detrás del operador morsa en Python". El codificador renegado . Consultado el 25 de febrero de 2024 .
  79. ^ Bader, Dan. "Mejores prácticas de formato de cadenas de Python". Pitón real . Consultado el 25 de febrero de 2024 .
  80. ^ Martelli, Alex; Ravenscroft, Anna; Ascher, David (2005). Libro de cocina de Python, segunda edición. Medios O'Reilly . pag. 230.ISBN _ 978-0-596-00797-3. Archivado desde el original el 23 de febrero de 2020 . Consultado el 14 de noviembre de 2015 .
  81. ^ "Cultura Python". ebeab . 21 de enero de 2014. Archivado desde el original el 30 de enero de 2014.
  82. ^ ab "Transpilación de Python a Julia usando PyJL" (PDF) . Después de modificar manualmente una línea de código especificando la información de tipo necesaria, obtuvimos una aceleración de 52,6 veces, lo que hace que el código Julia traducido sea 19,5 veces más rápido que el código Python original.
  83. ^ "¿Por qué se llama Python?". Preguntas frecuentes generales sobre Python . Docs.python.org. Archivado desde el original el 24 de octubre de 2012 . Consultado el 3 de enero de 2023 .
  84. ^ "15 formas en que Python es una fuerza poderosa en la Web". Archivado desde el original el 11 de mayo de 2019 . Consultado el 3 de julio de 2018 .
  85. ^ "pprint - Impresora de datos bonita - Documentación de Python 3.11.0". docs.python.org . Archivado desde el original el 22 de enero de 2021 . Consultado el 5 de noviembre de 2022 . cosas=['spam', 'huevos', 'leñador', 'caballeros', 'ni']
  86. ^ Clark, Robert (26 de abril de 2019). "Cómo ser pitónico y por qué debería importarte". Medio . Archivado desde el original el 13 de agosto de 2021 . Consultado el 20 de enero de 2021 .
  87. ^ "Estilo de código: la guía del autoestopista Python". docs.python-guide.org . Archivado desde el original el 27 de enero de 2021 . Consultado el 20 de enero de 2021 .
  88. ^ "¿Es Python un buen lenguaje para programadores principiantes?". Preguntas frecuentes generales sobre Python . Fundación de software Python. Archivado desde el original el 24 de octubre de 2012 . Consultado el 21 de marzo de 2007 .
  89. ^ "Mitos sobre la sangría en Python". Secnetix.de. Archivado desde el original el 18 de febrero de 2018 . Consultado el 19 de abril de 2011 .
  90. ^ Guttag, John V. (12 de agosto de 2016). Introducción a la computación y la programación utilizando Python: con aplicación a la comprensión de datos . Prensa del MIT. ISBN 978-0-262-52962-4.
  91. ^ "PEP 8 - Guía de estilo para código Python". Python.org . Archivado desde el original el 17 de abril de 2019 . Consultado el 26 de marzo de 2019 .
  92. ^ "8. Errores y excepciones: documentación de Python 3.12.0a0". docs.python.org . Archivado desde el original el 9 de mayo de 2022 . Consultado el 9 de mayo de 2022 .
  93. ^ "Aspectos destacados: Python 2.5". Python.org . Archivado desde el original el 4 de agosto de 2019 . Consultado el 20 de marzo de 2018 .
  94. ^ van Rossum, Guido (22 de abril de 2009). "Eliminación de la recursión de cola". Neopythonic.blogspot.be. Archivado desde el original el 19 de mayo de 2018 . Consultado el 3 de diciembre de 2012 .
  95. ^ van Rossum, Guido (9 de febrero de 2006). "El diseño de lenguajes no consiste solo en resolver acertijos". Foros de Artima . Artima. Archivado desde el original el 17 de enero de 2020 . Consultado el 21 de marzo de 2007 .
  96. ^ van Rossum, Guido; Eby, Phillip J. (10 de mayo de 2005). "PEP 342 - Corrutinas mediante generadores mejorados". Propuestas de mejora de Python . Fundación de software Python. Archivado desde el original el 29 de mayo de 2020 . Consultado el 19 de febrero de 2012 .
  97. ^ "PEP 380". Python.org. Archivado desde el original el 4 de junio de 2020 . Consultado el 3 de diciembre de 2012 .
  98. ^ "división". python.org . Archivado desde el original el 20 de julio de 2006 . Consultado el 30 de julio de 2014 .
  99. ^ "PEP 0465: un operador infijo dedicado para la multiplicación de matrices". python.org . Archivado desde el original el 4 de junio de 2020 . Consultado el 1 de enero de 2016 .
  100. ^ "Registro de cambios y lanzamiento de Python 3.5.1". python.org . Archivado desde el original el 14 de mayo de 2020 . Consultado el 1 de enero de 2016 .
  101. ^ "Novedades de Python 3.8". Archivado desde el original el 8 de junio de 2020 . Consultado el 14 de octubre de 2019 .
  102. ^ van Rossum, Guido; Hettinger, Raymond (7 de febrero de 2003). "PEP 308 - Expresiones condicionales". Propuestas de mejora de Python . Fundación de software Python. Archivado desde el original el 13 de marzo de 2016 . Consultado el 13 de julio de 2011 .
  103. ^ "4. Tipos integrados: documentación de Python 3.6.3rc1". python.org . Archivado desde el original el 14 de junio de 2020 . Consultado el 1 de octubre de 2017 .
  104. ^ "5.3. Tuplas y secuencias: documentación de Python 3.7.1rc2". python.org . Archivado desde el original el 10 de junio de 2020 . Consultado el 17 de octubre de 2018 .
  105. ^ ab "PEP 498 - Interpolación de cadenas literales". python.org . Archivado desde el original el 15 de junio de 2020 . Consultado el 8 de marzo de 2017 .
  106. ^ "¿Por qué se debe utilizar 'self' explícitamente en las definiciones y llamadas a métodos?". Preguntas frecuentes sobre diseño e historia . Fundación de software Python. Archivado desde el original el 24 de octubre de 2012 . Consultado el 19 de febrero de 2012 .
  107. ^ Sweigart, Al (2020). Más allá de lo básico con Python: mejores prácticas para escribir código limpio. Sin prensa de almidón. pag. 322.ISBN _ 978-1-59327-966-0. Archivado desde el original el 13 de agosto de 2021 . Consultado el 7 de julio de 2021 .
  108. ^ "Referencia del lenguaje Python, sección 3.3. Clases clásicas y de nuevo estilo, para la versión 2.7.1". Archivado desde el original el 26 de octubre de 2012 . Consultado el 12 de enero de 2011 .
  109. ^ "PEP 484 - Sugerencias de tipo | peps.python.org". peps.python.org . Consultado el 29 de noviembre de 2023 .
  110. ^ "mecanografía: compatibilidad con sugerencias de escritura". Documentación de Python . Fundación de software Python . Consultado el 22 de diciembre de 2023 .
  111. ^ "mypy: escritura estática opcional para Python". Archivado desde el original el 6 de junio de 2020 . Consultado el 28 de enero de 2017 .
  112. ^ "Introducción". mypyc.readthedocs.io . Consultado el 22 de diciembre de 2023 .
  113. ^ "15. Aritmética de punto flotante: problemas y limitaciones - documentación de Python 3.8.3". docs.python.org . Archivado desde el original el 6 de junio de 2020 . Consultado el 6 de junio de 2020 . Casi todas las máquinas actuales (noviembre de 2000) utilizan aritmética de coma flotante IEEE-754, y casi todas las plataformas asignan flotantes de Python a la "doble precisión" IEEE-754.
  114. ^ Zadka, Moshé; van Rossum, Guido (11 de marzo de 2001). "PEP 237 - Unificación de números enteros largos y enteros". Propuestas de mejora de Python . Fundación de software Python. Archivado desde el original el 28 de mayo de 2020 . Consultado el 24 de septiembre de 2011 .
  115. ^ "Tipos integrados". Archivado desde el original el 14 de junio de 2020 . Consultado el 3 de octubre de 2019 .
  116. ^ "PEP 465: un operador infijo dedicado para la multiplicación de matrices". python.org . Archivado desde el original el 29 de mayo de 2020 . Consultado el 3 de julio de 2018 .
  117. ^ ab Zadka, Moshé; van Rossum, Guido (11 de marzo de 2001). "PEP 238 - Cambio de operador de división". Propuestas de mejora de Python . Fundación de software Python. Archivado desde el original el 28 de mayo de 2020 . Consultado el 23 de octubre de 2013 .
  118. ^ "Por qué los pisos de división de enteros de Python". 24 de agosto de 2010. Archivado desde el original el 5 de junio de 2020 . Consultado el 25 de agosto de 2010 .
  119. ^ "ronda", La biblioteca estándar de Python, versión 3.2, §2: funciones integradas , archivado desde el original el 25 de octubre de 2012 , recuperado 14 de agosto 2011
  120. ^ "ronda", La biblioteca estándar de Python, versión 2.7, §2: funciones integradas , archivado desde el original el 27 de octubre de 2012 , recuperado 14 de agosto 2011
  121. ^ Beazley, David M. (2009). Referencia esencial de Python (4ª ed.). Profesional de Addison-Wesley. pag. 66.ISBN _ 9780672329784.
  122. ^ Kernighan, Brian W.; Ritchie, Dennis M. (1988). El lenguaje de programación C (2ª ed.). pag. 206.
  123. ^ ab Batista, Facundo (17 de octubre de 2003). "PEP 327 - Tipo de datos decimales". Propuestas de mejora de Python . Fundación de software Python. Archivado desde el original el 4 de junio de 2020 . Consultado el 24 de noviembre de 2008 .
  124. ^ "Novedades de Python 2.6". Documentación de Python v2.6.9 . 29 de octubre de 2013. Archivado desde el original el 23 de diciembre de 2019 . Consultado el 26 de septiembre de 2015 .
  125. ^ "Diez razones por las que Python es ideal para la investigación (y algunas razones por las que no) - Hoyt Koepke". Departamento de Estadística de la Universidad de Washington . Archivado desde el original el 31 de mayo de 2020 . Consultado el 3 de febrero de 2019 .
  126. ^ Shell, Scott (17 de junio de 2014). "Una introducción a Python para la informática científica" (PDF) . Archivado (PDF) desde el original el 4 de febrero de 2019 . Consultado el 3 de febrero de 2019 .
  127. ^ Piotrowski, Przemyslaw (julio de 2006). "Cree un entorno de desarrollo web rápido para páginas de servidor Python y Oracle". Red de tecnología Oracle . Oráculo. Archivado desde el original el 2 de abril de 2019 . Consultado el 12 de marzo de 2012 .
  128. ^ Eby, Phillip J. (7 de diciembre de 2003). "PEP 333 - Interfaz de puerta de enlace del servidor web Python v1.0". Propuestas de mejora de Python . Fundación de software Python. Archivado desde el original el 14 de junio de 2020 . Consultado el 19 de febrero de 2012 .
  129. ^ "Recuentos de módulos". Recuentos de módulos . 14 de noviembre de 2022. Archivado desde el original el 26 de junio de 2022.
  130. ^ Pensamiento, dosel. "Pabellón". www.enthink.com . Archivado desde el original el 15 de julio de 2017 . Consultado el 20 de agosto de 2016 .
  131. ^ "PEP 7 - Guía de estilo para código C | peps.python.org". peps.python.org . Archivado desde el original el 24 de abril de 2022 . Consultado el 28 de abril de 2022 .
  132. ^ "4. Creación de extensiones C y C++: documentación de Python 3.9.2". docs.python.org . Archivado desde el original el 3 de marzo de 2021 . Consultado el 1 de marzo de 2021 .
  133. ^ van Rossum, Guido (5 de junio de 2001). "PEP 7 - Guía de estilo para código C". Propuestas de mejora de Python . Fundación de software Python. Archivado desde el original el 1 de junio de 2020 . Consultado el 24 de noviembre de 2008 .
  134. ^ "Código de bytes CPython". Docs.python.org. Archivado desde el original el 5 de junio de 2020 . Consultado el 16 de febrero de 2016 .
  135. ^ "Partes internas de Python 2.5" (PDF) . Archivado (PDF) desde el original el 6 de agosto de 2012 . Consultado el 19 de abril de 2011 .
  136. ^ "Registro de cambios: documentación de Python 3.9.0". docs.python.org . Archivado desde el original el 7 de febrero de 2021 . Consultado el 8 de febrero de 2021 .
  137. ^ "Descargar Python". Python.org . Archivado desde el original el 8 de diciembre de 2020 . Consultado el 13 de diciembre de 2020 .
  138. ^ "historia [vmspython]". www.vmspython.org . Archivado desde el original el 2 de diciembre de 2020 . Consultado el 4 de diciembre de 2020 .
  139. ^ "Una entrevista con Guido van Rossum". Oreilly.com. Archivado desde el original el 16 de julio de 2014 . Consultado el 24 de noviembre de 2008 .
  140. ^ "Descargar Python para otras plataformas". Python.org . Archivado desde el original el 27 de noviembre de 2020 . Consultado el 4 de diciembre de 2020 .
  141. ^ "Compatibilidad con PyPy". Pypy.org. Archivado desde el original el 6 de junio de 2020 . Consultado el 3 de diciembre de 2012 .
  142. ^ Equipo, The PyPy (28 de diciembre de 2019). "Descargar e instalar". PyPy . Archivado desde el original el 8 de enero de 2022 . Consultado el 8 de enero de 2022 .
  143. ^ "comparación de velocidad entre CPython y Pypy". Velocidad.pypy.org. Archivado desde el original el 10 de mayo de 2021 . Consultado el 3 de diciembre de 2012 .
  144. ^ "Funciones Stackless a nivel de aplicación: documentación de PyPy 2.0.2". Doc.pypy.org. Archivado desde el original el 4 de junio de 2020 . Consultado el 17 de julio de 2013 .
  145. ^ "Python para EV3". Educación LEGO . Archivado desde el original el 7 de junio de 2020 . Consultado el 17 de abril de 2019 .
  146. ^ Yegulalp, Serdar (29 de octubre de 2020). "Pyston regresa de entre los muertos para acelerar a Python". InfoMundo . Archivado desde el original el 27 de enero de 2021 . Consultado el 26 de enero de 2021 .
  147. ^ "ceniza: bifurcación de CPython orientada al rendimiento de Instagram". GitHub . Archivado desde el original el 4 de mayo de 2021 . Consultado el 4 de mayo de 2021 .
  148. ^ Aroca, Rafael (7 de agosto de 2021). "Snek Lang: se siente como Python en Arduinos". Otro blog de tecnología más . Consultado el 4 de enero de 2024 .
  149. ^ Aufranc (CNXSoft), Jean-Luc (16 de enero de 2020). "Snekboard controla las funciones de potencia de LEGO con los lenguajes de programación CircuitPython o Snek (financiación colectiva) - Software CNX". Software CNX - Noticias de sistemas integrados . Consultado el 4 de enero de 2024 .
  150. ^ Kennedy (@mkennedy), Michael. "¿Listo para saber si eres famoso?". pythonbytes.fm . Consultado el 4 de enero de 2024 .
  151. ^ Packard, Keith (20 de diciembre de 2022). "El lenguaje de programación Snek: un lenguaje informático integrado inspirado en Python" (PDF) .
  152. ^ "Planes para optimizar Python". Alojamiento de proyectos de Google . 15 de diciembre de 2009. Archivado desde el original el 11 de abril de 2016 . Consultado el 24 de septiembre de 2011 .
  153. ^ "Python en el Nokia N900". Geometría Estocástica . 29 de abril de 2010. Archivado desde el original el 20 de junio de 2019 . Consultado el 9 de julio de 2015 .
  154. ^ "Brython". brython.info . Archivado desde el original el 3 de agosto de 2018 . Consultado el 21 de enero de 2021 .
  155. ^ "Transcrypt - Python en el navegador". transcrypt.org . Archivado desde el original el 19 de agosto de 2018 . Consultado el 22 de diciembre de 2020 .
  156. ^ "Transcrypt: anatomía de un compilador de Python a JavaScript". InfoQ . Archivado desde el original el 5 de diciembre de 2020 . Consultado el 20 de enero de 2021 .
  157. ^ "Codón: diferencias con Python". Archivado desde el original el 25 de mayo de 2023 . Consultado el 28 de agosto de 2023 .
  158. ^ Lawson, Loraine (14 de marzo de 2023). "El compilador creado por el MIT acelera el código Python". La nueva pila . Archivado desde el original el 6 de abril de 2023 . Consultado el 28 de agosto de 2023 .
  159. ^ "Casa Nuitka | Casa Nuitka". nuitka.net . Archivado desde el original el 30 de mayo de 2020 . Consultado el 18 de agosto de 2017 .
  160. ^ Guelton, Serge; Brunet, Pierrick; Amini, Mehdi; Merlini, Adrián; Corbillón, Xavier; Raynaud, Alan (16 de marzo de 2015). "Pythran: permitiendo la optimización estática de programas científicos de Python". Descubrimiento y ciencia computacional . Publicación PIO. 8 (1): 014001. Código bibliográfico : 2015CS&D....8a4001G. doi : 10.1088/1749-4680/8/1/014001 . ISSN  1749-4699.
  161. ^ "El transpilador Python → 11l → C++". Archivado desde el original el 24 de septiembre de 2022 . Consultado el 17 de julio de 2022 .
  162. ^ "google/gruñón". 10 de abril de 2020. Archivado desde el original el 15 de abril de 2020 . Consultado el 25 de marzo de 2020 a través de GitHub.
  163. ^ "Proyectos". opensource.google . Archivado desde el original el 24 de abril de 2020 . Consultado el 25 de marzo de 2020 .
  164. ^ Francisco, Thomas Claburn en San. "El código Grumpy de Google hace que Python Go". www.theregister.com . Archivado desde el original el 7 de marzo de 2021 . Consultado el 20 de enero de 2021 .
  165. ^ "GitHub - IronLanguages/ironpython3: implementación de Python 3.x para .NET Framework construida sobre Dynamic Language Runtime". GitHub . Archivado desde el original el 28 de septiembre de 2021.
  166. ^ "IronPython.net/". ironpython.net . Archivado desde el original el 17 de abril de 2021.
  167. ^ "Preguntas frecuentes sobre Jython". www.jython.org . Archivado desde el original el 22 de abril de 2021 . Consultado el 22 de abril de 2021 .
  168. ^ Murri, Ricardo (2013). "Rendimiento de los tiempos de ejecución de Python en un código científico no numérico ". Conferencia europea sobre Python en la ciencia (EuroSciPy). arXiv : 1404.6388 . Código Bib : 2014arXiv1404.6388M.
  169. ^ "El juego de puntos de referencia del lenguaje informático". Archivado desde el original el 14 de junio de 2020 . Consultado el 30 de abril de 2020 .
  170. ^ ab Varsovia, Barry; Hylton, Jeremy; Goodger, David (13 de junio de 2000). "PEP 1 - Propósito y directrices del PEP". Propuestas de mejora de Python . Fundación de software Python. Archivado desde el original el 6 de junio de 2020 . Consultado el 19 de abril de 2011 .
  171. ^ "PEP 8 - Guía de estilo para código Python". Python.org . Archivado desde el original el 17 de abril de 2019 . Consultado el 26 de marzo de 2019 .
  172. ^ Cañón, Brett. "Guido, algunos chicos y una lista de correo: cómo se desarrolla Python". python.org . Fundación de software Python. Archivado desde el original el 1 de junio de 2009 . Consultado el 27 de junio de 2009 .
  173. ^ "Mover los errores de Python a GitHub [LWN.net]". Archivado desde el original el 2 de octubre de 2022 . Consultado el 2 de octubre de 2022 .
  174. ^ "Guía para desarrolladores de Python - Guía para desarrolladores de Python". devguide.python.org . Archivado desde el original el 9 de noviembre de 2020 . Consultado el 17 de diciembre de 2019 .
  175. ^ Hughes, Owen (24 de mayo de 2021). "Lenguajes de programación: por qué es posible que Python 4.0 nunca llegue, según su creador". República Tecnológica . Archivado desde el original el 14 de julio de 2022 . Consultado el 16 de mayo de 2022 .
  176. ^ "PEP 602: ciclo de lanzamiento anual de Python". Python.org . Archivado desde el original el 14 de junio de 2020 . Consultado el 6 de noviembre de 2019 .
  177. ^ "Cambiar la cadencia de lanzamiento de Python [LWN.net]". lwn.net . Archivado desde el original el 6 de noviembre de 2019 . Consultado el 6 de noviembre de 2019 .
  178. ^ Norwitz, Neal (8 de abril de 2002). "Programaciones de lanzamiento [Python-Dev] (era estabilidad y cambio)". Archivado desde el original el 15 de diciembre de 2018 . Consultado el 27 de junio de 2009 .
  179. ^ ab Aahz; Baxter, Anthony (15 de marzo de 2001). "PEP 6: versiones de corrección de errores". Propuestas de mejora de Python . Fundación de software Python. Archivado desde el original el 5 de junio de 2020 . Consultado el 27 de junio de 2009 .
  180. ^ "Construcción de Python". Guía del desarrollador de Python . Fundación de software Python. Archivado desde el original el 5 de junio de 2020 . Consultado el 24 de septiembre de 2011 .
  181. ^ "1. Ampliación de Python con C o C++: documentación de Python 3.9.1". docs.python.org . Archivado desde el original el 23 de junio de 2020 . Consultado el 14 de febrero de 2021 .
  182. ^ "PEP 623: eliminar wstr de Unicode". Python.org . Archivado desde el original el 5 de marzo de 2021 . Consultado el 14 de febrero de 2021 .
  183. ^ "PEP 634 - Coincidencia de patrones estructurales: especificación". Python.org . Archivado desde el original el 6 de mayo de 2021 . Consultado el 14 de febrero de 2021 .
  184. ^ "Herramientas de documentación". Python.org . Archivado desde el original el 11 de noviembre de 2020 . Consultado el 22 de marzo de 2021 .
  185. ^ ab "Abrir el apetito". El tutorial de Python . Fundación de software Python. Archivado desde el original el 26 de octubre de 2012 . Consultado el 20 de febrero de 2012 .
  186. ^ "En Python, ¿debería usar else después de un retorno en un bloque if?". Desbordamiento de pila . Intercambio de pila. 17 de febrero de 2011. Archivado desde el original el 20 de junio de 2019 . Consultado el 6 de mayo de 2011 .
  187. ^ Lutz, Mark (2009). Aprendiendo Python: poderosa programación orientada a objetos. O'Reilly Media, Inc. pág. 17.ISBN _ 9781449379322. Archivado desde el original el 17 de julio de 2017 . Consultado el 9 de mayo de 2017 .
  188. ^ Fehily, Chris (2002). Pitón. Prensa Peachpit. pag. xv. ISBN 9780201748840. Archivado desde el original el 17 de julio de 2017 . Consultado el 9 de mayo de 2017 .
  189. ^ Lubanovic, Bill (2014). Presentando Python. Sebastopol, CA: O'Reilly Media. pag. 305.ISBN _ 978-1-4493-5936-2. Consultado el 31 de julio de 2023 .
  190. ^ Blake, Troy (18 de enero de 2021). "Índice TIOBE de enero de 2021". Noticias e información tecnológica por SeniorDBA . Archivado desde el original el 21 de marzo de 2021 . Consultado el 26 de febrero de 2021 .
  191. ^ Prechelt, Lutz (14 de marzo de 2000). "Una comparación empírica de C, C++, Java, Perl, Python, Rexx y Tcl" (PDF) . Archivado (PDF) desde el original el 3 de enero de 2020 . Consultado el 30 de agosto de 2013 .
  192. ^ "Citas sobre Python". Fundación de software Python. Archivado desde el original el 3 de junio de 2020 . Consultado el 8 de enero de 2012 .
  193. ^ "Organizaciones que utilizan Python". Fundación de software Python. Archivado desde el original el 21 de agosto de 2018 . Consultado el 15 de enero de 2009 .
  194. ^ "Python: el santo grial de la programación". Boletín del CERN . Publicaciones del CERN (31/2006). 31 de julio de 2006. Archivado desde el original el 15 de enero de 2013 . Consultado el 11 de febrero de 2012 .
  195. ^ Shafer, Daniel G. (17 de enero de 2003). "Python agiliza el diseño de la misión del transbordador espacial". Fundación de software Python. Archivado desde el original el 5 de junio de 2020 . Consultado el 24 de noviembre de 2008 .
  196. ^ "Tornado: marco web en tiempo real de Facebook para Python: Facebook para desarrolladores". Facebook para desarrolladores . Archivado desde el original el 19 de febrero de 2019 . Consultado el 19 de junio de 2018 .
  197. ^ "Qué impulsa a Instagram: cientos de instancias, docenas de tecnologías". Ingeniería de Instagram. 11 de diciembre de 2016. Archivado desde el original el 15 de junio de 2020 . Consultado el 27 de mayo de 2019 .
  198. ^ "Cómo usamos Python en Spotify". Laboratorios Spotify . 20 de marzo de 2013. Archivado desde el original el 10 de junio de 2020 . Consultado el 25 de julio de 2018 .
  199. ^ Fortenberry, Tim (17 de enero de 2003). "Industrial Light & Magic se ejecuta en Python". Fundación de software Python. Archivado desde el original el 6 de junio de 2020 . Consultado el 11 de febrero de 2012 .
  200. ^ Taft, Darryl K. (5 de marzo de 2007). "Python se desliza hacia los sistemas". eWeek.com . Participaciones de Ziff Davis. Archivado desde el original el 13 de agosto de 2021 . Consultado el 24 de septiembre de 2011 .
  201. ^ GitHub - reddit-archive/reddit: código histórico de reddit.com., The Reddit Archives, archivado desde el original el 1 de junio de 2020 , recuperado 20 de marzo de 2019
  202. ^ "Estadísticas de uso y cuota de mercado de Python para sitios web". 2012. Archivado desde el original el 13 de agosto de 2021 . Consultado el 18 de diciembre de 2012 .
  203. ^ Oliphant, Travis (2007). "Python para la informática científica". Computación en Ciencias e Ingeniería . 9 (3): 10–20. Código Bib : 2007CSE.....9c..10O. CiteSeerX 10.1.1.474.6460 . doi :10.1109/MCSE.2007.58. S2CID  206457124. Archivado desde el original el 15 de junio de 2020 . Consultado el 10 de abril de 2015 . 
  204. ^ Millman, K. Jarrod; Aivazis, Michael (2011). "Python para científicos e ingenieros". Computación en Ciencias e Ingeniería . 13 (2): 9–12. Código Bib : 2011CSE....13b...9M. doi :10.1109/MCSE.2011.36. Archivado desde el original el 19 de febrero de 2019 . Consultado el 7 de julio de 2014 .
  205. ^ Educación científica con SageMath, Innovative Computing in Science Education, archivado desde el original el 15 de junio de 2020 , recuperado 22 de abril de 2019
  206. ^ "OpenCV: Tutoriales de OpenCV-Python". docs.opencv.org . Archivado desde el original el 23 de septiembre de 2020 . Consultado el 14 de septiembre de 2020 .
  207. ^ Decano, Jeff ; Monga, Rajat; et al. (9 de noviembre de 2015). "TensorFlow: aprendizaje automático a gran escala en sistemas heterogéneos" (PDF) . TensorFlow.org . Investigación de Google. Archivado (PDF) desde el original el 20 de noviembre de 2015 . Consultado el 10 de noviembre de 2015 .
  208. ^ Piatetsky, Gregorio. "Python devora a R: el mejor software para análisis, ciencia de datos y aprendizaje automático en 2018: tendencias y análisis". KDnuggets . Archivado desde el original el 15 de noviembre de 2019 . Consultado el 30 de mayo de 2018 .
  209. ^ "¿Quién utiliza scikit-learn? - documentación de scikit-learn 0.20.1". scikit-learn.org . Archivado desde el original el 6 de mayo de 2020 . Consultado el 30 de noviembre de 2018 .
  210. ^ Jouppi, norma . "Google potencia las tareas de aprendizaje automático con un chip personalizado de TPU". Blog de la plataforma Google Cloud . Archivado desde el original el 18 de mayo de 2016 . Consultado el 19 de mayo de 2016 .
  211. ^ De Raedt, Luc; Kimmig, Angelika (2015). "Conceptos de programación probabilística (lógica)". Aprendizaje automático . 100 (1): 5–47. doi : 10.1007/s10994-015-5494-z . S2CID  3166992.
  212. ^ "Kit de herramientas de lenguaje natural: documentación NLTK 3.5b1". www.nltk.org . Archivado desde el original el 13 de junio de 2020 . Consultado el 10 de abril de 2020 .
  213. ^ Andersen, C. y Swift, T., 2023. El sistema Janus: un puente hacia nuevas aplicaciones de prólogo. En Prólogo: Los próximos 50 años (págs. 93-104). Cham: Springer Nature Suiza.
  214. ^ Tarau, P., 2023. Reflexiones sobre automatización, capacidad de aprendizaje y expresividad en lenguajes de programación basados ​​en lógica. En Prólogo: Los próximos 50 años (págs. 359-371). Cham: Springer Nature Suiza.
  215. ^ "Tkinter: interfaz Python para TCL/Tk". Archivado desde el original el 18 de octubre de 2012 . Consultado el 9 de junio de 2023 .
  216. ^ "Tutorial de Python Tkinter". 3 de junio de 2020. Archivado desde el original el 9 de junio de 2023 . Consultado el 9 de junio de 2023 .
  217. ^ "Instaladores de GIMP para Windows: preguntas frecuentes". 26 de julio de 2013. Archivado desde el original el 17 de julio de 2013 . Consultado el 26 de julio de 2013 .
  218. ^ "componentes jasc psp9". Archivado desde el original el 19 de marzo de 2008.
  219. ^ "Acerca de cómo empezar a escribir scripts de geoprocesamiento". Ayuda de ArcGIS Desktop 9.2 . Instituto de Investigación de Sistemas Ambientales. 17 de noviembre de 2006. Archivado desde el original el 5 de junio de 2020 . Consultado el 11 de febrero de 2012 .
  220. ^ Panceta de cerdo del PCCh (24 de agosto de 2010). "Python sin pila 2.7". Blogs de desarrollo de la comunidad EVE . Juegos del PCCh . Archivado desde el original el 11 de enero de 2014 . Consultado el 11 de enero de 2014 . Como sabrás, EVE tiene como núcleo el lenguaje de programación conocido como Stackless Python.
  221. ^ Caudill, Barry (20 de septiembre de 2005). "Modificación de Civilization IV de Sid Meier". Blog del desarrollador de Civilization IV de Sid Meier . Juegos de Firaxis . Archivado desde el original el 2 de diciembre de 2010. Creamos tres niveles de herramientas... El siguiente nivel ofrece compatibilidad con Python y XML, lo que permite a los modders con más experiencia manipular el mundo del juego y todo lo que contiene.
  222. ^ "Guía del lenguaje Python (v1.0)". API de datos de lista de documentos de Google v1.0 . Archivado desde el original el 15 de julio de 2010.
  223. ^ "Configuración y uso de Python". Fundación de software Python. Archivado desde el original el 17 de junio de 2020 . Consultado el 10 de enero de 2020 .
  224. ^ "Inmunidad: saber que estás seguro". Archivado desde el original el 16 de febrero de 2009.
  225. ^ "Seguridad básica". Seguridad básica . Archivado desde el original el 9 de junio de 2020 . Consultado el 10 de abril de 2020 .
  226. ^ "¿Qué es el azúcar?". Laboratorios de azúcar. Archivado desde el original el 9 de enero de 2009 . Consultado el 11 de febrero de 2012 .
  227. ^ "Nuevas funciones y correcciones 4.0". LibreOffice.org . La Fundación Documento . 2013. Archivado desde el original el 9 de febrero de 2014 . Consultado el 25 de febrero de 2013 .
  228. ^ "Errores para los usuarios de Python". boo.codehaus.org . Fundación Codehaus. Archivado desde el original el 11 de diciembre de 2008 . Consultado el 24 de noviembre de 2008 .
  229. ^ Esterbrook, Charles. "Agradecimientos". cobra-language.com . Lenguaje cobra. Archivado desde el original el 8 de febrero de 2008 . Consultado el 7 de abril de 2010 .
  230. ^ "Propuestas: iteradores y generadores [ES4 Wiki]". wiki.ecmascript.org. Archivado desde el original el 20 de octubre de 2007 . Consultado el 24 de noviembre de 2008 .
  231. ^ "Preguntas frecuentes". Documentación del motor Godot . Archivado desde el original el 28 de abril de 2021 . Consultado el 10 de mayo de 2021 .
  232. ^ Kincaid, Jason (10 de noviembre de 2009). "Google's Go: un nuevo lenguaje de programación que combina Python con C++". TechCrunch . Archivado desde el original el 18 de enero de 2010 . Consultado el 29 de enero de 2010 .
  233. ^ Strachan, James (29 de agosto de 2003). "Groovy: el nacimiento de un nuevo lenguaje dinámico para la plataforma Java". Archivado desde el original el 5 de abril de 2007 . Consultado el 11 de junio de 2007 .
  234. ^ "Modular Docs: por qué Mojo🔥". docs.modular.com . Archivado desde el original el 5 de mayo de 2023 . Consultado el 5 de mayo de 2023 . Mojo como miembro de la familia Python [..] Adoptar Python simplifica enormemente nuestros esfuerzos de diseño, porque la mayor parte de la sintaxis ya está especificada. [..] decidimos que el objetivo correcto a largo plazo para Mojo es proporcionar un superconjunto de Python (es decir, ser compatible con los programas existentes) y adoptar CPython de inmediato para habilitar el ecosistema de cola larga. Para un programador de Python, esperamos y esperamos que Mojo le resulte familiar de inmediato y, al mismo tiempo, proporcione nuevas herramientas para desarrollar código a nivel de sistemas que le permitan hacer cosas para las que Python recurre a C y C++.
  235. ^ Spencer, Michael (4 de mayo de 2023). "¿Qué es el lenguaje de programación Mojo?". datasciencelearningcenter.substack.com . Archivado desde el original el 5 de mayo de 2023 . Consultado el 5 de mayo de 2023 .
  236. ^ Yegulalp, Serdar (16 de enero de 2017). "El lenguaje Nim se basa en lo mejor de Python, Rust, Go y Lisp". InfoMundo . Archivado desde el original el 13 de octubre de 2018 . Consultado el 7 de junio de 2020 . La sintaxis de Nim recuerda mucho a la de Python, ya que utiliza bloques de código sangrados y parte de la misma sintaxis (como la forma en que se construyen los bloques if/elif/then/else).
  237. ^ "Una entrevista con el creador de Ruby". Linuxdevcenter.com. Archivado desde el original el 28 de abril de 2018 . Consultado el 3 de diciembre de 2012 .
  238. ^ Lattner, Chris (3 de junio de 2014). "Página de inicio de Chris Lattner". Chris Lattner. Archivado desde el original el 22 de diciembre de 2015 . Consultado el 3 de junio de 2014 . Comencé a trabajar en el lenguaje de programación Swift en julio de 2010. Implementé gran parte de la estructura básica del lenguaje, y solo unas pocas personas conocían su existencia. Algunas otras personas (increíbles) comenzaron a contribuir seriamente a finales de 2011, y se convirtió en un foco importante para el grupo de herramientas de desarrollo de Apple en julio de 2013 [...] extrayendo ideas de Objective-C, Rust, Haskell, Ruby, Python, C#, CLU y muchos otros para enumerarlos.
  239. ^ Kupries, Andreas; Becarios, Donal K. (14 de septiembre de 2000). "CONSEJO n.º 3: formato TIP". tcl.tk. _ Cambio de desarrollador Tcl. Archivado desde el original el 13 de julio de 2017 . Consultado el 24 de noviembre de 2008 .
  240. ^ Gustafsson, por; Niskanen, Raimo (29 de enero de 2007). "EEP 1: Propósito y directrices del EEP". erlang.org. Archivado desde el original el 15 de junio de 2020 . Consultado el 19 de abril de 2011 .
  241. ^ "Proceso de evolución rápida". Repositorio Swift Programming Language Evolution en GitHub . 18 de febrero de 2020. Archivado desde el original el 27 de abril de 2020 . Consultado el 27 de abril de 2020 .

Fuentes

Otras lecturas

enlaces externos