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 . [32]

Python es un lenguaje de tipado dinámico y recolección de basura . Admite múltiples paradigmas de programación , incluidos la programación estructurada (en particular, la procedimental ), la orientada a objetos y la funcional . A menudo se lo describe como un lenguaje "con baterías incluidas" debido a su completa biblioteca estándar . [33] [34]

Guido van Rossum comenzó a trabajar en Python a fines de la década de 1980 como sucesor del lenguaje de programación ABC y lo lanzó por primera vez en 1991 como Python 0.9.0. [35] 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. [36]

Python se clasifica 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 . [37] [38] [39] [40]

Historia

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

Python fue inventado a fines de la década de 1980 [41] 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 , [42] capaz de manejar excepciones e interactuar con el sistema operativo Amoeba . [12] Su implementación comenzó en diciembre de 1989. [43] 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 benevolente de por vida " (BDFL) de Python, un título que la comunidad de Python le otorgó para reflejar su compromiso a largo plazo como principal responsable de la toma de decisiones del proyecto [44] (desde entonces ha salido de su retiro y se autodenomina "BDFL-emérito"). En enero de 2019, los desarrolladores activos del núcleo de Python eligieron un Consejo Directivo de cinco miembros para liderar el proyecto. [45] [46]

Python 2.0 fue lanzado el 16 de octubre de 2000, con muchas nuevas características importantes como listas por comprensión , recolección de basura con detección cíclica , conteo de referencias y soporte Unicode . [47] Python 3.0 fue lanzado el 3 de diciembre de 2008, con muchas de sus características principales incorporadas a Python 2.6.x [48] y 2.7.x. Las versiones de Python 3 incluyen la 2to3utilidad, que automatiza la traducción del código de Python 2 a Python 3. [49]

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

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 [56] ) debido a problemas de seguridad que conducían a una posible ejecución remota de código [57] y envenenamiento de la caché web . [58] En 2022, se aceleraron Python 3.10.4 y 3.9.12 [59] y 3.8.13, debido a muchos problemas de seguridad. [60] Cuando se lanzó Python 3.9.13 en mayo de 2022, se anunció que la serie 3.9 (que se une a las series más antiguas 3.8 y 3.7) solo recibiría correcciones de seguridad en el futuro. [61] El 7 de septiembre de 2022, se realizaron cuatro nuevos lanzamientos debido a un posible ataque de denegación de servicio : 3.10.7, 3.9.14, 3.8.14 y 3.7.14. [62] [63]

Cada versión de Python desde la 3.5 ha agregado algo de sintaxis al lenguaje. La 3.10 agregó el |operador de tipo de unión [64] y las palabras clave matchand case(para declaraciones de coincidencia de patrones estructurales ). La 3.11 expandió la funcionalidad de manejo de excepciones . La 3.12 de Python agregó la nueva palabra clave type.

Entre los cambios notables en la versión 3.11 respecto de la 3.10 se incluyen una mayor velocidad de ejecución del programa y una mejora en la notificación de errores. [65] 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 un 5 % más a esa velocidad. También ha mejorado los mensajes de error y muchos otros cambios.

A partir de abril de 2024, Python 3.12 es la versión estable y es la única versión con soporte activo (en lugar de solo soporte de seguridad).

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 está llegando al final de su vida útil . [66]

Python 3.13 introdujo un recolector de basura incremental (que produce pausas más cortas para la recolección en programas con muchos objetos); un compilador JIT experimental ; [67] y eliminaciones de la API de C. Algunos módulos de la biblioteca estándar y muchas clases, funciones y métodos obsoletos se eliminarán en Python 3.15 y/o 3.16. [68] [69] A partir de 3.13, esta y las versiones posteriores tienen 2 años de soporte completo (en lugar de uno y medio); seguido de 3 años de soporte de seguridad (para el mismo soporte total que antes).

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 [70] y los metaobjetos ). [71] Muchos otros paradigmas son compatibles a través de extensiones, incluido el diseño por contrato [72] [73] y la programación lógica . [74]

Python utiliza tipado dinámico y una combinación de conteo de referencias y un recolector de basura con detección de ciclos para la gestión de memoria . [75] Utiliza resolución de nombres dinámica ( 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 de Lisp . Tiene funciones y ; listas por comprensiónfilter , diccionarios , conjuntos y expresiones generadoras . [76] La biblioteca estándar tiene dos módulos ( y ) que implementan herramientas funcionales tomadas de Haskell y Standard ML . [77]mapreduceitertoolsfunctools

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

Sin embargo, las características de Python violan regularmente estos principios y han recibido críticas por agregar una hinchazón innecesaria al lenguaje. [79] Las respuestas a estas críticas son que el Zen de Python es una guía en lugar de una regla. [80] La adición de algunas características nuevas había sido tan controvertida que Guido van Rossum renunció como dictador benévolo vitalicio después de las críticas por la adición del operador de expresión de asignación en Python 3.8. [81] [82]

Sin embargo, en lugar de construir toda su funcionalidad 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 un medio para agregar interfaces programables a aplicaciones existentes. La visión de Van Rossum de un lenguaje de núcleo 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. [41]

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

Los desarrolladores de Python generalmente se esfuerzan por evitar la optimización prematura y rechazan parches a 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. [85] 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 a otros lenguajes, pero o bien no proporciona la aceleración completa que podría esperarse, ya que Python es un lenguaje muy dinámico , o se compila un subconjunto restringido de Python, y posiblemente se cambie ligeramente la semántica. [86]

Los desarrolladores de Python buscan que sea divertido de usar. Esto se refleja en su nombre, un tributo al grupo de comedia británico Monty Python [87] , y en enfoques ocasionalmente lúdicos de tutoriales y materiales de referencia, como el uso de los términos "spam" y "eggs" (una referencia a un sketch de Monty Python ) en los ejemplos, en lugar de los términos "foo" y "bar" que se usan a menudo . [88] [89] 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 usar bien los modismos de Python , ser natural o mostrar fluidez en el lenguaje, o cumplir con la filosofía minimalista de Python y el é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 llama unpythonic . [90]

Sintaxis y semántica

Bloque de código Python que muestra un código fuente de muestra
Un ejemplo de código Python y sangría
Código C con llaves y punto y coma
Ejemplo de código C# con llaves y punto y coma

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

Sangría

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

Declaraciones y flujo de control

Las declaraciones de Python incluyen:

La sentencia de asignación ( =) vincula un nombre como referencia a un objeto separado asignado dinámicamente . Las variables pueden volver a vincularse en cualquier momento a cualquier objeto. En Python, un nombre de variable es un contenedor de referencia genérico sin un tipo de datos fijo ; sin embargo, siempre se refiere a algún objeto con un tipo. Esto se denomina tipado dinámico , en contraste con los lenguajes de tipado estático , donde cada variable puede contener solo un valor de un tipo determinado.

Python no admite la optimización de llamadas de cola ni las continuaciones de primera clase y, según Van Rossum, nunca lo hará. [97] [98] Sin embargo, se proporciona un mejor soporte para la funcionalidad similar a la de las corrutinas al extender los generadores de Python . [99] Antes de la versión 2.5, los generadores eran iteradores perezosos ; los datos se pasaban unidireccionalmente fuera del generador. A partir de Python 2.5, es posible pasar datos de vuelta a una función de generador; y a partir de la versión 3.3, se pueden pasar a través de múltiples niveles de pila. [100]

Expresiones

Las expresiones de Python incluyen:

En Python, se aplica una distinción estricta entre expresiones y declaraciones, a diferencia de lenguajes como Common Lisp , Scheme o Ruby . Esto lleva a la duplicación de 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 , al ser todas 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.a = 1

Métodos

Los métodos de los objetos son funciones asociadas a la clase del objeto; la sintaxis es, para los métodos y funciones normales, azúcar sintáctica para . Los métodos de Python tienen un parámetro explícito para acceder a los datos de 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 ). [109] 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 operaciones nativas, incluyendo longitud, comparación, en operaciones aritméticas y conversión de tipos. [110]instance.method(argument)Class.method(instance, argument)selfthis

Mecanografía

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

Python utiliza tipado de pato y tiene objetos tipados pero nombres de variables sin tipar. Las restricciones de tipo no se comprueban en tiempo de compilación ; en cambio, las operaciones sobre un objeto pueden fallar, lo que significa que no es de un tipo adecuado. A pesar de estar tipado dinámicamente , Python está fuertemente tipado , prohibiendo las 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 , que se utilizan con mayor frecuencia en 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 (que a su vez es 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 ; [111] las versiones actuales de Python solo admiten la semántica del nuevo estilo.

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

Operaciones aritméticas

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

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

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

El redondeo hacia el infinito negativo, aunque es diferente de la mayoría de los lenguajes, agrega consistencia. Por ejemplo, significa que la ecuación siempre es verdadera. 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. [121](a + b)//b == a//b + 1b*(a//b) + a%b == aaa%bbb

Python proporciona una roundfunción para redondear un número de punto flotante al entero más cercano. Para desempatar , Python 3 usa round to even : round(1.5)y round(2.5)ambos producen 2. [122] Las versiones anteriores a la 3 usaban round-away-from-zero : round(0.5)is 1.0, round(-0.5)is −1.0. [123]

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

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

Debido a la extensa biblioteca matemática de Python y a la biblioteca de terceros NumPy que extiende 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. [128] [129]

Ejemplos de programación

Programa "¡Hola, mundo!" :

imprimir ( '¡Hola, mundo!' )

Programa para calcular el factorial de un entero positivo:

n  =  int ( input ( 'Escribe un número y se imprimirá su factorial: ' ))Si  n  <  0 : raise  ValueError ( 'Debe ingresar un entero no negativo' )factorial  =  1para  i  en  el rango ( 2 ,  n  +  1 ): factorial  *=  iimprimir ( factorial )

Bibliotecas

La gran biblioteca estándar de Python [130] proporciona herramientas adecuadas para muchas tareas y se cita comúnmente como una de sus mayores fortalezas. Para 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, [126] manipular expresiones regulares y realizar 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 la norma PEP 333 [131] ), 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 implementar variantes.

Al 17 de marzo de 2024, el Índice de paquetes de Python (PyPI), el repositorio oficial de software Python de terceros, contiene más de 523 000 [132] 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-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 inmediatamente.

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 IDE basado en navegador y entorno de alojamiento; y Canopy IDE, un IDE comercial que enfatiza la computación científica . [133]

Implementaciones

Implementación de referencia

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

Desde la versión 3.7, Python solo admite sistemas operativos con soporte para subprocesos múltiples.

Otras implementaciones

Implementaciones que ya no son compatibles

Se han desarrollado otros compiladores Python just-in-time, pero actualmente no son compatibles:

Compiladores cruzados a otros lenguajes

Hay varios compiladores/ transpiladores para lenguajes de objetos de alto nivel, ya sea 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 del rendimiento de varias implementaciones de Python en una carga de trabajo no numérica (combinatoria). [171] El rendimiento de Python en comparación con otros lenguajes de programación también se evalúa mediante The Computer Language Benchmarks Game . [172]

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. [173] El estilo de codificación de Python se cubre en PEP 8. [174] La comunidad de Python y el consejo directivo revisan y comentan las PEP pendientes. [173]

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 por la fundación. [175] En 2022, todos los problemas y discusiones se migraron a GitHub . [176] El desarrollo se llevó a cabo originalmente en un repositorio de código fuente autoalojado que ejecutaba Mercurial , hasta que Python se trasladó a GitHub en enero de 2017. [177]

Las versiones públicas de CPython vienen en tres tipos, que se distinguen por qué parte del número de versión se incrementa:

También se lanzan muchas versiones alfa, beta y candidatas a lanzamiento como vistas previas y para pruebas antes de los lanzamientos 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. [183]

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

Python 3.12 eliminó wstrel significado de que las extensiones de Python [184] debían modificarse [185] y 3.10 agregó coincidencia de patrones al lenguaje. [186]

Python 3.12 eliminó algunos módulos obsoletos y se eliminarán más en el futuro, obsoleto a partir de 3.13; el código de formato de matriz 'u' ya obsoleto se emitirá DeprecationWarningdesde 3.13 y se eliminará en Python 3.16. Se debe usar el código de formato 'w' en su lugar. Parte de ctypes también está obsoleto y http.server.CGIHTTPRequestHandleremitirá un DeprecationWarning, 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 tipificación están obsoletas, por ejemplo, crear una typing.NamedTupleclase usando argumentos de palabras clave para denotar los campos y cosas así (y más) no se permitirá en Python 3.15.

Generadores de documentación de 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. [187]

Nombramiento

El nombre de Python se deriva del grupo de comedia británico Monty Python , al que 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; [188] por ejemplo, las variables metasintácticas que se usan a menudo en la literatura de Python son spam y eggs en lugar de las tradicionales foo y bar . [188] [189] La documentación oficial de Python también contiene varias referencias a rutinas de Monty Python. [190] [191] A los usuarios de Python a veces se les llama "Pythonistas". [192]

El prefijo Py- se utiliza para indicar que algo está relacionado con Python. Algunos ejemplos del uso de este prefijo en nombres de aplicaciones o bibliotecas de Python incluyen Pygame , un enlace de Simple DirectMedia Layer a Python (usado comúnmente para crear juegos); PyQt y PyGTK , que enlazan 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 a diciembre de 2022 era el lenguaje más popular (por delante de C, C++ y Java ). [39] Fue seleccionado como lenguaje de programación del año (por "el mayor aumento en las calificaciones en un año") en 2007, 2010, 2018 y 2020 (el único lenguaje que lo ha hecho cuatro veces a partir de 2020 [193] ).

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

Usos

Desarrollado con Python

Python puede servir como lenguaje de script para aplicaciones web , por ejemplo, a través de mod_wsgi para el servidor web Apache . [204] Con Web Server Gateway Interface , ha evolucionado 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 e IronPython se pueden utilizar para desarrollar el lado del cliente de aplicaciones basadas en Ajax. SQLAlchemy se puede utilizar como un mapeador de datos a una base de datos relacional. Twisted es un marco para programar comunicaciones entre computadoras y es utilizado (por ejemplo) por Dropbox .

Bibliotecas como NumPy , SciPy y Matplotlib permiten el uso efectivo de Python en computación científica, [205] [206] con bibliotecas especializadas como Biopython y Astropy que brindan funcionalidad específica del dominio. SageMath es un sistema de álgebra computacional con una interfaz de notebook 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 . [207] OpenCV tiene enlaces de Python con un rico conjunto de características para visión por computadora y procesamiento de imágenes . [208]

Python se utiliza 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 lógico ProbLog . [209] [210] [211] [212] [213] Como lenguaje de scripting con una arquitectura modular , sintaxis simple y herramientas de procesamiento de texto enriquecido, Python se utiliza a menudo para el procesamiento del lenguaje natural . [214]

La combinación de Python y Prolog ha demostrado ser particularmente útil para aplicaciones de IA, ya que Prolog proporciona representación de conocimiento y capacidades de razonamiento. El sistema Janus, en particular, explota las similitudes entre estos dos lenguajes, en parte debido a su uso de tipado dinámico 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. [215] [216] El sistema Natlog, implementado en Python, utiliza gramáticas de cláusulas definidas (DCG) como generadores de indicaciones para generadores de texto a texto como GPT3 y generadores de texto a imagen como DALL-E o Stable Diffusion. [217]

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

Python se ha integrado con éxito en muchos productos de software como lenguaje de scripting, incluyendo 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 , [220] Inkscape , Scribus y Paint Shop Pro , [221] y programas de notación musical como scorewriter y capella . GNU Debugger utiliza Python como una impresora bonita para mostrar estructuras complejas como contenedores de C++. Esri promueve Python como la mejor opción para escribir scripts en ArcGIS . [222] También se ha utilizado en varios videojuegos, [223] [224] y se ha adoptado como el primero de los tres lenguajes de programación disponibles en Google App Engine , siendo los otros dos Java y Go . [225]

Muchos sistemas operativos incluyen Python como un componente estándar. Se entrega con la mayoría de las distribuciones Linux , [226] AmigaOS 4 (que usa Python 2.7), FreeBSD (como paquete), NetBSD y OpenBSD (como paquete) y se puede usar desde la línea de comandos (terminal). Muchas distribuciones 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 usa Python en su sistema de administración de paquetes , Portage .

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

La mayor parte del software Sugar para One Laptop per Child XO, desarrollado en Sugar Labs a partir de 2008 , está escrito en Python. [229] 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 por Python. Su proveedor de scripts para Python es una característica fundamental [230] desde la versión 4.0 del 7 de febrero de 2013.

Lenguajes 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 requerir 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 , [243] Erlang , [244] y Swift. [245]

Véase también

Referencias

  1. ^ "Preguntas frecuentes generales sobre Python: documentación de Python 3". docs.python.org . Consultado el 7 de julio de 2024 .
  2. ^ "Python 0.9.1 parte 01/21". Archivos de 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 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 pistas de tipos". Python.org . Archivado desde el original el 14 de junio de 2020 . Consultado el 14 de junio de 2018 .
  5. ^ "PEP 11 – Compatibilidad con la plataforma CPython | peps.python.org". Propuestas de mejora de Python (PEP) . Consultado el 22 de abril de 2024 .
  6. ^ "PEP 738 – Incorporación de Android como plataforma compatible | peps.python.org". Propuestas de mejora de Python (PEP) . Consultado el 19 de mayo de 2024 .
  7. ^ "Descargar Python para otras plataformas". Python.org . Archivado desde el original el 27 de noviembre de 2020. Consultado el 18 de agosto de 2023 .
  8. ^ "test – 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 .
  9. ^ "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 .
  10. ^ Holth, Moore (30 de marzo de 2014). «PEP 0441 – Mejorar la compatibilidad de aplicaciones ZIP con Python». Archivado desde el original el 26 de diciembre de 2018. Consultado el 12 de noviembre de 2015 .
  11. ^ "Starlark Language". Archivado desde el original el 15 de junio de 2020. Consultado el 25 de mayo de 2019 .
  12. ^ ab "¿Por qué se creó Python en primer lugar?". Preguntas frecuentes generales sobre Python . Python Software Foundation. Archivado desde el original el 24 de octubre de 2012. Consultado el 22 de marzo de 2007. Tenía una 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 el diseño de lenguajes. 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 los detalles son todos diferentes en Python).
  13. ^ "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 .
  14. ^ 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 del DEC, que me presentó a Modula-2+; el informe final de Modula-3 se estaba escribiendo allí aproximadamente al mismo tiempo. Lo que aprendí allí más tarde se mostró 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. La segmentación de cadenas provino de Algol-68 e Icon.
  15. ^ 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.
  16. ^ van Rossum, Guido (1993). "Introducción a Python para programadores de UNIX/C". Actas de la NLUUG Najaarsconferentie (Grupo de usuarios de UNIX holandés) . CiteSeerX 10.1.1.38.2023 . Aunque el diseño de C está lejos de ser ideal, su influencia en Python es considerable. 
  17. ^ ab "Clases". El tutorial de Python . Python Software Foundation. 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
  18. ^ Lundh, Fredrik. "Llamada por objeto". effbot.org . Archivado desde el original el 23 de noviembre de 2019. Consultado el 21 de noviembre de 2017. Si reemplaza "CLU" por "Python", "registro" por "instancia" y "procedimiento" por "función o método", obtendrá una descripción bastante precisa del modelo de objetos de Python.
  19. ^ Simionato, Michele. "El orden de resolución del método de Python 2.3". Python Software Foundation. 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 los que tienen problemas de lenguaje.
  20. ^ Kuchling, AM "Functional Programming HOWTO". Documentación de Python v2.7.2 . Python Software Foundation. Archivado desde el original el 24 de octubre de 2012 . Consultado el 9 de febrero de 2012 . Las comprensiones de listas y las expresiones generadoras [...] son ​​una notación concisa para tales operaciones, tomada del lenguaje de programación funcional Haskell.
  21. ^ Schemenauer, Neil; Peters, Tim; Hetland, Magnus Lie (18 de mayo de 2001). «PEP 255 – Generadores simples». Propuestas de mejora de Python . Python Software Foundation. Archivado desde el original el 5 de junio de 2020. Consultado el 9 de febrero de 2012 .
  22. ^ "Más herramientas de control de flujo". Documentación de Python 3 . Python Software Foundation. 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.
  23. ^ "re – Operaciones con 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.
  24. ^ "CoffeeScript". coffeescript.org . Archivado desde el original el 12 de junio de 2020 . Consultado el 3 de julio de 2018 .
  25. ^ "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 .
  26. ^ Rauschmayer, Axel. «Capítulo 3: La naturaleza de JavaScript; Influencias». O'Reilly, Speaking JavaScript . Archivado desde el original el 26 de diciembre de 2018. Consultado el 15 de mayo de 2015 .
  27. ^ 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 que sea tan útil para la programación general como Python [...]
  28. ^ ab Krill, Paul (4 de mayo de 2023). «El lenguaje Mojo combina Python y MLIR para el desarrollo de IA». InfoWorld . Archivado desde el original el 5 de mayo de 2023 . Consultado el 5 de mayo de 2023 .
  29. ^ Ring Team (4 de diciembre de 2017). «Ring 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 .
  30. ^ Bini, Ola (2007). Proyectos prácticos de JRuby on Rails Web 2.0: llevar Ruby on Rails a la plataforma Java . Berkeley: APress. p. 3. ISBN 978-1-59059-881-8.
  31. ^ Lattner, Chris (3 de junio de 2014). "Página de inicio de Chris Lattner". Chris Lattner. Archivado del 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 lenguajes, gurús de la documentación, ninjas de la optimización de compiladores y un grupo interno de pruebas internas increíblemente importante que brindó 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, tomando ideas de Objective-C, Rust, Haskell, Ruby, Python, C#, CLU y muchos otros para enumerarlos.
  32. ^ Kuhlman, Dave. "Un libro sobre Python: Python para principiantes, Python avanzado y ejercicios de Python". Sección 1.1. Archivado desde el original (PDF) el 23 de junio de 2012.
  33. ^ "Acerca de Python". Python Software Foundation. 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".
  34. ^ "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 .
  35. ^ Rossum, Guido Van (20 January 2009). "The History of Python: A Brief Timeline of Python". The History of Python. Archived from the original on 5 June 2020. Retrieved 5 March 2021.
  36. ^ Peterson, Benjamin (20 April 2020). "Python 2.7.18, the last release of Python 2". Python Insider. Archived from the original on 26 April 2020. Retrieved 27 April 2020.
  37. ^ "Stack Overflow Developer Survey 2022". Stack Overflow. Archived from the original on 27 June 2022. Retrieved 12 August 2022.
  38. ^ "The State of Developer Ecosystem in 2020 Infographic". JetBrains: Developer Tools for Professionals and Teams. Archived from the original on 1 March 2021. Retrieved 5 March 2021.
  39. ^ a b "TIOBE Index". TIOBE. Archived from the original on 25 February 2018. Retrieved 3 January 2023. The TIOBE Programming Community index is an indicator of the popularity of programming languages Updated as required.
  40. ^ "PYPL PopularitY of Programming Language index". pypl.github.io. Archived from the original on 14 March 2017. Retrieved 26 March 2021.
  41. ^ a b Venners, Bill (13 January 2003). "The Making of Python". Artima Developer. Artima. Archived from the original on 1 September 2016. Retrieved 22 March 2007.
  42. ^ van Rossum, Guido (29 August 2000). "SETL (was: Lukewarm about range literals)". Python-Dev (Mailing list). Archived from the original on 14 July 2018. Retrieved 13 March 2011.
  43. ^ van Rossum, Guido (20 January 2009). "A Brief Timeline of Python". The History of Python. Archived from the original on 5 June 2020. Retrieved 20 January 2009.
  44. ^ Fairchild, Carlie (12 July 2018). "Guido van Rossum Stepping Down from Role as Python's Benevolent Dictator For Life". Linux Journal. Archived from the original on 13 July 2018. Retrieved 13 July 2018.
  45. ^ "PEP 8100". Python Software Foundation. Archived from the original on 4 June 2020. Retrieved 4 May 2019.
  46. ^ "PEP 13 – Python Language Governance". Python.org. Archived from the original on 27 May 2021. Retrieved 25 August 2021.
  47. ^ Kuchling, A. M.; Zadka, Moshe (16 October 2000). "What's New in Python 2.0". Python Software Foundation. Archived from the original on 23 October 2012. Retrieved 11 February 2012.
  48. ^ van Rossum, Guido (5 April 2006). "PEP 3000 – Python 3000". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 3 March 2016. Retrieved 27 June 2009.
  49. ^ "2to3 – Automated Python 2 to 3 code translation". docs.python.org. Archived from the original on 4 June 2020. Retrieved 2 February 2021.
  50. ^ "PEP 373 – Python 2.7 Release Schedule". python.org. Archived from the original on 19 May 2020. Retrieved 9 January 2017.
  51. ^ "PEP 466 – Network Security Enhancements for Python 2.7.x". python.org. Archived from the original on 4 June 2020. Retrieved 9 January 2017.
  52. ^ "Sunsetting Python 2". Python.org. Archived from the original on 12 January 2020. Retrieved 22 September 2019.
  53. ^ "PEP 373 – Python 2.7 Release Schedule". Python.org. Archived from the original on 13 January 2020. Retrieved 22 September 2019.
  54. ^ "Python Release Python 3.7.17". Python.org. Archived from the original on 31 July 2023. Retrieved 18 August 2023.
  55. ^ mattip (25 December 2023). "PyPy v7.3.14 release". PyPy. Archived from the original on 5 January 2024. Retrieved 5 January 2024.
  56. ^ "CVE-2021-3177". Red Hat Customer Portal. Archived from the original on 6 March 2021. Retrieved 26 February 2021.
  57. ^ "CVE-2021-3177". CVE. Archived from the original on 27 February 2021. Retrieved 26 February 2021.
  58. ^ "CVE-2021-23336". CVE. Archived from the original on 24 February 2021. Retrieved 26 February 2021.
  59. ^ Langa, Łukasz (24 March 2022). "Python 3.10.4 and 3.9.12 are now available out of schedule". Python Insider. Archived from the original on 21 April 2022. Retrieved 19 April 2022.
  60. ^ Langa, Łukasz (16 March 2022). "Python 3.10.3, 3.9.11, 3.8.13, and 3.7.13 are now available with security content". Python Insider. Archived from the original on 17 April 2022. Retrieved 19 April 2022.
  61. ^ Langa, Łukasz (17 May 2022). "Python 3.9.13 is now available". Python Insider. Archived from the original on 17 May 2022. Retrieved 21 May 2022.
  62. ^ Langa, Łukasz (7 September 2022). "Python releases 3.10.7, 3.9.14, 3.8.14, and 3.7.14 are now available". Python Insider. Archived from the original on 13 September 2022. Retrieved 16 September 2022.
  63. ^ "CVE-2020-10735". CVE. Archived from the original on 20 September 2022. Retrieved 16 September 2022.
  64. ^ "Built-in Types".
  65. ^ corbet (24 October 2022). "Python 3.11 released [LWN.net]". lwn.net. Retrieved 15 November 2022.
  66. ^ "Python". endoflife.date. 23 July 2024. Archived from the original on 18 September 2021. Retrieved 15 August 2023.
  67. ^ "What's New In Python 3.13". Python documentation. Retrieved 30 April 2024.
  68. ^ Wouters, Thomas (9 April 2024). "Python Insider: Python 3.12.3 and 3.13.0a6 released". Python Insider. Retrieved 29 April 2024.
  69. ^ "PEP 594 – Removing dead batteries from the standard library". Python Enhancement Proposals. Python Softtware Foundation. 20 May 2019.
  70. ^ The Cain Gang Ltd. "Python Metaclasses: Who? Why? When?" (PDF). Archived from the original (PDF) on 30 May 2009. Retrieved 27 June 2009.
  71. ^ "3.3. Special method names". The Python Language Reference. Python Software Foundation. Archived from the original on 15 December 2018. Retrieved 27 June 2009.
  72. ^ "PyDBC: method preconditions, method postconditions and class invariants for Python". Archived from the original on 23 November 2019. Retrieved 24 September 2011.
  73. ^ "Contracts for Python". Archived from the original on 15 June 2020. Retrieved 24 September 2011.
  74. ^ "PyDatalog". Archived from the original on 13 June 2020. Retrieved 22 July 2012.
  75. ^ "Extending and Embedding the Python Interpreter: Reference Counts". Docs.python.org. Archived from the original on 18 October 2012. Retrieved 5 June 2020. Since Python makes heavy use of malloc() and free(), it needs a strategy to avoid memory leaks as well as the use of freed memory. The chosen method is called reference counting.
  76. ^ a b Hettinger, Raymond (30 January 2002). "PEP 289 – Generator Expressions". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 14 June 2020. Retrieved 19 February 2012.
  77. ^ "6.5 itertools – Functions creating iterators for efficient looping". Docs.python.org. Archived from the original on 14 June 2020. Retrieved 22 November 2016.
  78. ^ a b Peters, Tim (19 August 2004). "PEP 20 – The Zen of Python". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 26 December 2018. Retrieved 24 November 2008.
  79. ^ Lutz, Mark (January 2022). "Python Changes 2014+". Learning Python. Archived from the original on 15 March 2024. Retrieved 25 February 2024.
  80. ^ "Confusion regarding a rule in The Zen of Python". Python Help - Discussions on Python.org. 3 May 2022. Archived from the original on 25 February 2024. Retrieved 25 February 2024.
  81. ^ Ambi, Chetan (4 July 2021). "The Most Controversial Python Walrus Operator". Python Simplified. Archived from the original on 27 August 2023. Retrieved 5 February 2024.
  82. ^ Grifski, Jeremy (24 May 2020). "The Controversy Behind The Walrus Operator in Python". The Renegade Coder. Archived from the original on 28 December 2023. Retrieved 25 February 2024.
  83. ^ Bader, Dan. "Python String Formatting Best Practices". Real Python. Archived from the original on 18 February 2024. Retrieved 25 February 2024.
  84. ^ Martelli, Alex; Ravenscroft, Anna; Ascher, David (2005). Python Cookbook, 2nd Edition. O'Reilly Media. p. 230. ISBN 978-0-596-00797-3. Archived from the original on 23 February 2020. Retrieved 14 November 2015.
  85. ^ "Python Culture". ebeab. 21 January 2014. Archived from the original on 30 January 2014.
  86. ^ a b "Transpiling Python to Julia using PyJL" (PDF). Archived (PDF) from the original on 19 November 2023. Retrieved 20 September 2023. After manually modifying one line of code by specifying the necessary type information, we obtained a speedup of 52.6×, making the translated Julia code 19.5× faster than the original Python code.
  87. ^ "Why is it called Python?". General Python FAQ. Docs.python.org. Archived from the original on 24 October 2012. Retrieved 3 January 2023.
  88. ^ "15 Ways Python Is a Powerful Force on the Web". Archived from the original on 11 May 2019. Retrieved 3 July 2018.
  89. ^ "pprint – Data pretty printer – Python 3.11.0 documentation". docs.python.org. Archived from the original on 22 January 2021. Retrieved 5 November 2022. stuff=['spam', 'eggs', 'lumberjack', 'knights', 'ni']
  90. ^ "Code Style – The Hitchhiker's Guide to Python". docs.python-guide.org. Archived from the original on 27 January 2021. Retrieved 20 January 2021.
  91. ^ "Is Python a good language for beginning programmers?". General Python FAQ. Python Software Foundation. Archived from the original on 24 October 2012. Retrieved 21 March 2007.
  92. ^ "Myths about indentation in Python". Secnetix.de. Archived from the original on 18 February 2018. Retrieved 19 April 2011.
  93. ^ Guttag, John V. (12 August 2016). Introduction to Computation and Programming Using Python: With Application to Understanding Data. MIT Press. ISBN 978-0-262-52962-4.
  94. ^ "PEP 8 – Style Guide for Python Code". Python.org. Archived from the original on 17 April 2019. Retrieved 26 March 2019.
  95. ^ "8. Errors and Exceptions – Python 3.12.0a0 documentation". docs.python.org. Archived from the original on 9 May 2022. Retrieved 9 May 2022.
  96. ^ "Highlights: Python 2.5". Python.org. Archived from the original on 4 August 2019. Retrieved 20 March 2018.
  97. ^ van Rossum, Guido (22 April 2009). "Tail Recursion Elimination". Neopythonic.blogspot.be. Archived from the original on 19 May 2018. Retrieved 3 December 2012.
  98. ^ van Rossum, Guido (9 February 2006). "Language Design Is Not Just Solving Puzzles". Artima forums. Artima. Archived from the original on 17 January 2020. Retrieved 21 March 2007.
  99. ^ van Rossum, Guido; Eby, Phillip J. (10 May 2005). "PEP 342 – Coroutines via Enhanced Generators". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 29 May 2020. Retrieved 19 February 2012.
  100. ^ "PEP 380". Python.org. Archived from the original on 4 June 2020. Retrieved 3 December 2012.
  101. ^ "division". python.org. Archived from the original on 20 July 2006. Retrieved 30 July 2014.
  102. ^ "PEP 0465 – A dedicated infix operator for matrix multiplication". python.org. Archived from the original on 4 June 2020. Retrieved 1 January 2016.
  103. ^ "Python 3.5.1 Release and Changelog". python.org. Archived from the original on 14 May 2020. Retrieved 1 January 2016.
  104. ^ "What's New in Python 3.8". Archived from the original on 8 June 2020. Retrieved 14 October 2019.
  105. ^ van Rossum, Guido; Hettinger, Raymond (7 February 2003). "PEP 308 – Conditional Expressions". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 13 March 2016. Retrieved 13 July 2011.
  106. ^ "4. Built-in Types – Python 3.6.3rc1 documentation". python.org. Archived from the original on 14 June 2020. Retrieved 1 October 2017.
  107. ^ "5.3. Tuples and Sequences – Python 3.7.1rc2 documentation". python.org. Archived from the original on 10 June 2020. Retrieved 17 October 2018.
  108. ^ a b "PEP 498 – Literal String Interpolation". python.org. Archived from the original on 15 June 2020. Retrieved 8 March 2017.
  109. ^ "Why must 'self' be used explicitly in method definitions and calls?". Design and History FAQ. Python Software Foundation. Archived from the original on 24 October 2012. Retrieved 19 February 2012.
  110. ^ Sweigart, Al (2020). Beyond the Basic Stuff with Python: Best Practices for Writing Clean Code. No Starch Press. p. 322. ISBN 978-1-59327-966-0. Archived from the original on 13 August 2021. Retrieved 7 July 2021.
  111. ^ "The Python Language Reference, section 3.3. New-style and classic classes, for release 2.7.1". Archived from the original on 26 October 2012. Retrieved 12 January 2011.
  112. ^ "PEP 484 – Type Hints | peps.python.org". peps.python.org. Archived from the original on 27 November 2023. Retrieved 29 November 2023.
  113. ^ "typing — Support for type hints". Python documentation. Python Software Foundation. Archived from the original on 21 February 2020. Retrieved 22 December 2023.
  114. ^ "mypy – Optional Static Typing for Python". Archived from the original on 6 June 2020. Retrieved 28 January 2017.
  115. ^ "Introduction". mypyc.readthedocs.io. Archived from the original on 22 December 2023. Retrieved 22 December 2023.
  116. ^ "15. Floating Point Arithmetic: Issues and Limitations – Python 3.8.3 documentation". docs.python.org. Archived from the original on 6 June 2020. Retrieved 6 June 2020. Almost all machines today (November 2000) use IEEE-754 floating point arithmetic, and almost all platforms map Python floats to IEEE-754 "double precision".
  117. ^ Zadka, Moshe; van Rossum, Guido (11 de marzo de 2001). «PEP 237 – Unificación de enteros largos y enteros». Propuestas de mejora de Python . Python Software Foundation. Archivado desde el original el 28 de mayo de 2020. Consultado el 24 de septiembre de 2011 .
  118. ^ "Tipos integrados". Archivado desde el original el 14 de junio de 2020. Consultado el 3 de octubre de 2019 .
  119. ^ "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 .
  120. ^ ab Zadka, Moshe; van Rossum, Guido (11 de marzo de 2001). «PEP 238 – Cambio del operador de división». Propuestas de mejora de Python . Python Software Foundation. Archivado desde el original el 28 de mayo de 2020. Consultado el 23 de octubre de 2013 .
  121. ^ "Por qué la división de enteros de Python tiene límites inferiores". 24 de agosto de 2010. Archivado desde el original el 5 de junio de 2020. Consultado el 25 de agosto de 2010 .
  122. ^ "round", La biblioteca estándar de Python, versión 3.2, §2: Funciones integradas , archivado desde el original el 25 de octubre de 2012 , consultado el 14 de agosto de 2011
  123. ^ "round", La biblioteca estándar de Python, versión 2.7, §2: Funciones integradas , archivado desde el original el 27 de octubre de 2012 , consultado el 14 de agosto de 2011
  124. ^ Beazley, David M. (2009). Referencia esencial de Python (4.ª ed.). Addison-Wesley Professional. pág. 66. ISBN 9780672329784.
  125. ^ Kernighan, Brian W.; Ritchie, Dennis M. (1988). El lenguaje de programación C (2.ª ed.). pág. 206.
  126. ^ ab Batista, Facundo (17 de octubre de 2003). «PEP 327 – Tipo de datos decimales». Propuestas de mejora de Python . Python Software Foundation. Archivado desde el original el 4 de junio de 2020. Consultado el 24 de noviembre de 2008 .
  127. ^ "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 .
  128. ^ "10 razones por las que Python es genial para la investigación (y algunas razones por las que no lo es) – 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 .
  129. ^ Shell, Scott (17 de junio de 2014). «Una introducción a Python para la computación científica» (PDF) . Archivado (PDF) del original el 4 de febrero de 2019. Consultado el 3 de febrero de 2019 .
  130. ^ Piotrowski, Przemyslaw (julio de 2006). "Construya un entorno de desarrollo web rápido para Python Server Pages y Oracle". Oracle Technology Network . Oracle. Archivado desde el original el 2 de abril de 2019. Consultado el 12 de marzo de 2012 .
  131. ^ Eby, Phillip J. (7 de diciembre de 2003). «PEP 333 – Interfaz de puerta de enlace de servidor web Python v1.0». Propuestas de mejora de Python . Python Software Foundation. Archivado desde el original el 14 de junio de 2020. Consultado el 19 de febrero de 2012 .
  132. ^ "PyPI". PyPI . 17 de marzo de 2024. Archivado desde el original el 17 de marzo de 2024.
  133. ^ Enthought, Canopy. «Canopy». www.enthought.com . Archivado desde el original el 15 de julio de 2017. Consultado el 20 de agosto de 2016 .
  134. ^ "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 .
  135. ^ "4. Creación de extensiones de 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 .
  136. ^ van Rossum, Guido (5 de junio de 2001). «PEP 7 – Guía de estilo para código C». Propuestas de mejora de Python . Python Software Foundation. Archivado desde el original el 1 de junio de 2020. Consultado el 24 de noviembre de 2008 .
  137. ^ "Código de bytes de CPython". Docs.python.org. Archivado desde el original el 5 de junio de 2020. Consultado el 16 de febrero de 2016 .
  138. ^ "Componentes internos de Python 2.5" (PDF) . Archivado (PDF) del original el 6 de agosto de 2012 . Consultado el 19 de abril de 2011 .
  139. ^ "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 .
  140. ^ "Descargar Python". Python.org . Archivado desde el original el 8 de diciembre de 2020. Consultado el 13 de diciembre de 2020 .
  141. ^ "historia [vmspython]". www.vmspython.org . Archivado desde el original el 2 de diciembre de 2020 . Consultado el 4 de diciembre de 2020 .
  142. ^ "Entrevista con Guido van Rossum". Oreilly.com. Archivado desde el original el 16 de julio de 2014. Consultado el 24 de noviembre de 2008 .
  143. ^ "Descargar Python para otras plataformas". Python.org . Archivado desde el original el 27 de noviembre de 2020. Consultado el 4 de diciembre de 2020 .
  144. ^ "Compatibilidad con PyPy". Pypy.org. Archivado desde el original el 6 de junio de 2020. Consultado el 3 de diciembre de 2012 .
  145. ^ Equipo de 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 .
  146. ^ "comparación de velocidad entre CPython y Pypy". Speed.pypy.org. Archivado desde el original el 10 de mayo de 2021. Consultado el 3 de diciembre de 2012 .
  147. ^ "Características de 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 .
  148. ^ "Python para EV3". LEGO Education . Archivado desde el original el 7 de junio de 2020. Consultado el 17 de abril de 2019 .
  149. ^ Yegulalp, Serdar (29 de octubre de 2020). «Pyston regresa de entre los muertos para acelerar Python». InfoWorld . Archivado desde el original el 27 de enero de 2021. Consultado el 26 de enero de 2021 .
  150. ^ "cinder: la 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 .
  151. ^ Aroca, Rafael (7 de agosto de 2021). «Snek Lang: se siente como Python en Arduinos». Yet Another Technology Blog . Archivado desde el original el 5 de enero de 2024 . Consultado el 4 de enero de 2024 .
  152. ^ Aufranc (CNXSoft), Jean-Luc (16 de enero de 2020). «Snekboard controla las funciones de potencia de LEGO con lenguajes de programación CircuitPython o Snek (financiación colectiva) – CNX Software». CNX Software – Embedded Systems News . Archivado desde el original el 5 de enero de 2024. Consultado el 4 de enero de 2024 .
  153. ^ Kennedy (@mkennedy), Michael. "¿Listo para descubrir si eres famoso?". pythonbytes.fm . Archivado desde el original el 5 de enero de 2024. Consultado el 4 de enero de 2024 .
  154. ^ Packard, Keith (20 de diciembre de 2022). «El lenguaje de programación Snek: un lenguaje informático integrado inspirado en Python» (PDF) . Archivado (PDF) del original el 4 de enero de 2024. Consultado el 4 de enero de 2024 .
  155. ^ "Planes para optimizar Python". Google Project Hosting . 15 de diciembre de 2009. Archivado desde el original el 11 de abril de 2016. Consultado el 24 de septiembre de 2011 .
  156. ^ "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 .
  157. ^ "Brython". brython.info . Archivado desde el original el 3 de agosto de 2018 . Consultado el 21 de enero de 2021 .
  158. ^ "Transcrypt – Python en el navegador". transcrypt.org . Archivado desde el original el 19 de agosto de 2018 . Consultado el 22 de diciembre de 2020 .
  159. ^ "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 .
  160. ^ "Codon: diferencias con Python". Archivado desde el original el 25 de mayo de 2023. Consultado el 28 de agosto de 2023 .
  161. ^ Lawson, Loraine (14 de marzo de 2023). «El compilador creado por el MIT acelera el código Python». The New Stack . Archivado desde el original el 6 de abril de 2023. Consultado el 28 de agosto de 2023 .
  162. ^ "Nuitka Home | Nuitka Home". nuitka.net . Archivado desde el original el 30 de mayo de 2020 . Consultado el 18 de agosto de 2017 .
  163. ^ Guelton, Serge; Brunet, Pierrick; Amini, Mehdi; Merlini, Adrien; Corbillon, Xavier; Raynaud, Alan (16 de marzo de 2015). "Pythran: permitiendo la optimización estática de programas científicos en Python". Computational Science & Discovery . 8 (1). IOP Publishing: 014001. Bibcode :2015CS&D....8a4001G. doi : 10.1088/1749-4680/8/1/014001 . ISSN  1749-4699.
  164. ^ "The Python → 11l → C++ transpiler". Archived from the original on 24 September 2022. Retrieved 17 July 2022.
  165. ^ "google/grumpy". 10 April 2020. Archived from the original on 15 April 2020. Retrieved 25 March 2020 – via GitHub.
  166. ^ "Projects". opensource.google. Archived from the original on 24 April 2020. Retrieved 25 March 2020.
  167. ^ Francisco, Thomas Claburn in San. "Google's Grumpy code makes Python Go". www.theregister.com. Archived from the original on 7 March 2021. Retrieved 20 January 2021.
  168. ^ "GitHub – IronLanguages/ironpython3: Implementation of Python 3.x for .NET Framework that is built on top of the Dynamic Language Runtime". GitHub. Archived from the original on 28 September 2021.
  169. ^ "IronPython.net /". ironpython.net. Archived from the original on 17 April 2021.
  170. ^ "Jython FAQ". www.jython.org. Archived from the original on 22 April 2021. Retrieved 22 April 2021.
  171. ^ Murri, Riccardo (2013). Performance of Python runtimes on a non-numeric scientific code. European Conference on Python in Science (EuroSciPy). arXiv:1404.6388. Bibcode:2014arXiv1404.6388M.
  172. ^ "The Computer Language Benchmarks Game". Archived from the original on 14 June 2020. Retrieved 30 April 2020.
  173. ^ a b Warsaw, Barry; Hylton, Jeremy; Goodger, David (13 June 2000). "PEP 1 – PEP Purpose and Guidelines". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 6 June 2020. Retrieved 19 April 2011.
  174. ^ "PEP 8 – Style Guide for Python Code". Python.org. Archived from the original on 17 April 2019. Retrieved 26 March 2019.
  175. ^ Cannon, Brett. "Guido, Some Guys, and a Mailing List: How Python is Developed". python.org. Python Software Foundation. Archived from the original on 1 June 2009. Retrieved 27 June 2009.
  176. ^ "Moving Python's bugs to GitHub [LWN.net]". Archived from the original on 2 October 2022. Retrieved 2 October 2022.
  177. ^ "Python Developer's Guide – Python Developer's Guide". devguide.python.org. Archived from the original on 9 November 2020. Retrieved 17 December 2019.
  178. ^ Hughes, Owen (24 May 2021). "Programming languages: Why Python 4.0 might never arrive, according to its creator". TechRepublic. Archived from the original on 14 July 2022. Retrieved 16 May 2022.
  179. ^ "PEP 602 – Annual Release Cycle for Python". Python.org. Archived from the original on 14 June 2020. Retrieved 6 November 2019.
  180. ^ "Changing the Python release cadence [LWN.net]". lwn.net. Archived from the original on 6 November 2019. Retrieved 6 November 2019.
  181. ^ Norwitz, Neal (8 April 2002). "[Python-Dev] Release Schedules (was Stability & change)". Archived from the original on 15 December 2018. Retrieved 27 June 2009.
  182. ^ a b Aahz; Baxter, Anthony (15 March 2001). "PEP 6 – Bug Fix Releases". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 5 June 2020. Retrieved 27 June 2009.
  183. ^ "Python Buildbot". Python Developer's Guide. Python Software Foundation. Archived from the original on 5 June 2020. Retrieved 24 September 2011.
  184. ^ "1. Extending Python with C or C++ – Python 3.9.1 documentation". docs.python.org. Archived from the original on 23 June 2020. Retrieved 14 February 2021.
  185. ^ "PEP 623 – Remove wstr from Unicode". Python.org. Archived from the original on 5 March 2021. Retrieved 14 February 2021.
  186. ^ "PEP 634 – Structural Pattern Matching: Specification". Python.org. Archived from the original on 6 May 2021. Retrieved 14 February 2021.
  187. ^ "Documentation Tools". Python.org. Archived from the original on 11 November 2020. Retrieved 22 March 2021.
  188. ^ a b "Whetting Your Appetite". The Python Tutorial. Python Software Foundation. Archived from the original on 26 October 2012. Retrieved 20 February 2012.
  189. ^ "In Python, should I use else after a return in an if block?". Stack Overflow. Stack Exchange. 17 February 2011. Archived from the original on 20 June 2019. Retrieved 6 May 2011.
  190. ^ Lutz, Mark (2009). Learning Python: Powerful Object-Oriented Programming. O'Reilly Media, Inc. p. 17. ISBN 9781449379322. Archived from the original on 17 July 2017. Retrieved 9 May 2017.
  191. ^ Fehily, Chris (2002). Python. Peachpit Press. p. xv. ISBN 9780201748840. Archived from the original on 17 July 2017. Retrieved 9 May 2017.
  192. ^ Lubanovic, Bill (2014). Introducing Python. Sebastopol, CA : O'Reilly Media. p. 305. ISBN 978-1-4493-5936-2. Retrieved 31 July 2023.
  193. ^ Blake, Troy (18 January 2021). "TIOBE Index for January 2021". Technology News and Information by SeniorDBA. Archived from the original on 21 March 2021. Retrieved 26 February 2021.
  194. ^ "Quotes about Python". Python Software Foundation. Archived from the original on 3 June 2020. Retrieved 8 January 2012.
  195. ^ "Organizations Using Python". Python Software Foundation. Archived from the original on 21 August 2018. Retrieved 15 January 2009.
  196. ^ "Python : the holy grail of programming". CERN Bulletin (31/2006). CERN Publications. 31 July 2006. Archived from the original on 15 January 2013. Retrieved 11 February 2012.
  197. ^ Shafer, Daniel G. (17 January 2003). "Python Streamlines Space Shuttle Mission Design". Python Software Foundation. Archived from the original on 5 June 2020. Retrieved 24 November 2008.
  198. ^ "Tornado: Facebook's Real-Time Web Framework for Python – Facebook for Developers". Facebook for Developers. Archived from the original on 19 February 2019. Retrieved 19 June 2018.
  199. ^ "What Powers Instagram: Hundreds of Instances, Dozens of Technologies". Instagram Engineering. 11 December 2016. Archived from the original on 15 June 2020. Retrieved 27 May 2019.
  200. ^ "How we use Python at Spotify". Spotify Labs. 20 March 2013. Archived from the original on 10 June 2020. Retrieved 25 July 2018.
  201. ^ Fortenberry, Tim (17 January 2003). "Industrial Light & Magic Runs on Python". Python Software Foundation. Archived from the original on 6 June 2020. Retrieved 11 February 2012.
  202. ^ Taft, Darryl K. (5 March 2007). "Python Slithers into Systems". eWeek.com. Ziff Davis Holdings. Archived from the original on 13 August 2021. Retrieved 24 September 2011.
  203. ^ GitHub – reddit-archive/reddit: historical code from reddit.com., The Reddit Archives, archived from the original on 1 June 2020, retrieved 20 March 2019
  204. ^ "Usage statistics and market share of Python for websites". 2012. Archived from the original on 13 August 2021. Retrieved 18 December 2012.
  205. ^ Oliphant, Travis (2007). "Python for Scientific Computing". Computing in Science and Engineering. 9 (3): 10–20. Bibcode:2007CSE.....9c..10O. CiteSeerX 10.1.1.474.6460. doi:10.1109/MCSE.2007.58. ISSN 1521-9615. S2CID 206457124. Archived from the original on 15 June 2020. Retrieved 10 April 2015.
  206. ^ Millman, K. Jarrod; Aivazis, Michael (2011). "Python for Scientists and Engineers". Computing in Science and Engineering. 13 (2): 9–12. Bibcode:2011CSE....13b...9M. doi:10.1109/MCSE.2011.36. Archived from the original on 19 February 2019. Retrieved 7 July 2014.
  207. ^ Science education with SageMath, Innovative Computing in Science Education, archived from the original on 15 June 2020, retrieved 22 April 2019
  208. ^ "OpenCV: OpenCV-Python Tutorials". docs.opencv.org. Archived from the original on 23 September 2020. Retrieved 14 September 2020.
  209. ^ Dean, Jeff; Monga, Rajat; et al. (9 November 2015). "TensorFlow: Large-scale machine learning on heterogeneous systems" (PDF). TensorFlow.org. Google Research. Archived (PDF) from the original on 20 November 2015. Retrieved 10 November 2015.
  210. ^ Piatetsky, Gregory. "Python eats away at R: Top Software for Analytics, Data Science, Machine Learning in 2018: Trends and Analysis". KDnuggets. Archived from the original on 15 November 2019. Retrieved 30 May 2018.
  211. ^ "Who is using scikit-learn? – scikit-learn 0.20.1 documentation". scikit-learn.org. Archived from the original on 6 May 2020. Retrieved 30 November 2018.
  212. ^ Jouppi, Norm. "Google supercharges machine learning tasks with TPU custom chip". Google Cloud Platform Blog. Archived from the original on 18 May 2016. Retrieved 19 May 2016.
  213. ^ De Raedt, Luc; Kimmig, Angelika (2015). "Probabilistic (logic) programming concepts". Machine Learning. 100 (1): 5–47. doi:10.1007/s10994-015-5494-z. S2CID 3166992.
  214. ^ "Natural Language Toolkit – NLTK 3.5b1 documentation". www.nltk.org. Archived from the original on 13 June 2020. Retrieved 10 April 2020.
  215. ^ Andersen, C. and Swift, T., 2023. The Janus System: a bridge to new prolog applications. In Prolog: The Next 50 Years (pp. 93–104). Cham: Springer Nature Switzerland.
  216. ^ "SWI-Prolog Python interface". Archived from the original on 15 March 2024. Retrieved 15 March 2024.
  217. ^ Tarau, P., 2023. Reflections on automation, learnability and expressiveness in logic-based programming languages. In Prolog: The Next 50 Years (pp. 359–371). Cham: Springer Nature Switzerland.
  218. ^ "Tkinter — Python interface to TCL/Tk". Archived from the original on 18 October 2012. Retrieved 9 June 2023.
  219. ^ "Python Tkinter Tutorial". 3 June 2020. Archived from the original on 9 June 2023. Retrieved 9 June 2023.
  220. ^ "Installers for GIMP for Windows – Frequently Asked Questions". 26 July 2013. Archived from the original on 17 July 2013. Retrieved 26 July 2013.
  221. ^ "jasc psp9components". Archived from the original on 19 March 2008.
  222. ^ "About getting started with writing geoprocessing scripts". ArcGIS Desktop Help 9.2. Environmental Systems Research Institute. 17 November 2006. Archived from the original on 5 June 2020. Retrieved 11 February 2012.
  223. ^ CCP porkbelly (24 August 2010). "Stackless Python 2.7". EVE Community Dev Blogs. CCP Games. Archived from the original on 11 January 2014. Retrieved 11 January 2014. As you may know, EVE has at its core the programming language known as Stackless Python.
  224. ^ Caudill, Barry (20 September 2005). "Modding Sid Meier's Civilization IV". Sid Meier's Civilization IV Developer Blog. Firaxis Games. Archived from the original on 2 December 2010. we created three levels of tools ... The next level offers Python and XML support, letting modders with more experience manipulate the game world and everything in it.
  225. ^ "Python Language Guide (v1.0)". Google Documents List Data API v1.0. Archived from the original on 15 July 2010.
  226. ^ "Python Setup and Usage". Python Software Foundation. Archived from the original on 17 June 2020. Retrieved 10 January 2020.
  227. ^ "Immunity: Knowing You're Secure". Archived from the original on 16 February 2009.
  228. ^ "Core Security". Core Security. Archived from the original on 9 June 2020. Retrieved 10 April 2020.
  229. ^ "What is Sugar?". Sugar Labs. Archived from the original on 9 January 2009. Retrieved 11 February 2012.
  230. ^ "4.0 New Features and Fixes". LibreOffice.org. The Document Foundation. 2013. Archived from the original on 9 February 2014. Retrieved 25 February 2013.
  231. ^ "Gotchas for Python Users". boo.codehaus.org. Codehaus Foundation. Archived from the original on 11 December 2008. Retrieved 24 November 2008.
  232. ^ Esterbrook, Charles. "Acknowledgements". cobra-language.com. Cobra Language. Archived from the original on 8 February 2008. Retrieved 7 April 2010.
  233. ^ "Proposals: iterators and generators [ES4 Wiki]". wiki.ecmascript.org. Archived from the original on 20 October 2007. Retrieved 24 November 2008.
  234. ^ "Frequently asked questions". Godot Engine documentation. Archived from the original on 28 April 2021. Retrieved 10 May 2021.
  235. ^ Kincaid, Jason (10 November 2009). "Google's Go: A New Programming Language That's Python Meets C++". TechCrunch. Archived from the original on 18 January 2010. Retrieved 29 January 2010.
  236. ^ Strachan, James (29 August 2003). "Groovy – the birth of a new dynamic language for the Java platform". Archived from the original on 5 April 2007. Retrieved 11 June 2007.
  237. ^ "Modular Docs – Why Mojo". docs.modular.com. Archived from the original on 5 May 2023. Retrieved 5 May 2023. Mojo as a member of the Python family [..] Embracing Python massively simplifies our design efforts, because most of the syntax is already specified. [..] we decided that the right long-term goal for Mojo is to provide a superset of Python (i.e. be compatible with existing programs) and to embrace the CPython immediately for long-tail ecosystem enablement. To a Python programmer, we expect and hope that Mojo will be immediately familiar, while also providing new tools for developing systems-level code that enable you to do things that Python falls back to C and C++ for.
  238. ^ Spencer, Michael (4 May 2023). "What is Mojo Programming Language?". datasciencelearningcenter.substack.com. Archived from the original on 5 May 2023. Retrieved 5 May 2023.
  239. ^ Yegulalp, Serdar (16 January 2017). "Nim language draws from best of Python, Rust, Go, and Lisp". InfoWorld. Archived from the original on 13 October 2018. Retrieved 7 June 2020. Nim's syntax is strongly reminiscent of Python's, as it uses indented code blocks and some of the same syntax (such as the way if/elif/then/else blocks are constructed).
  240. ^ "An Interview with the Creator of Ruby". Linuxdevcenter.com. Archived from the original on 28 April 2018. Retrieved 3 December 2012.
  241. ^ Lattner, Chris (3 June 2014). "Chris Lattner's Homepage". Chris Lattner. Archived from the original on 22 December 2015. Retrieved 3 June 2014. I started work on the Swift Programming Language in July of 2010. I implemented much of the basic language structure, with only a few people knowing of its existence. A few other (amazing) people started contributing in earnest late in 2011, and it became a major focus for the Apple Developer Tools group in July 2013 [...] drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.
  242. ^ Jalan, Nishant Aanjaney (10 November 2022). "Programming in Kotlin". CodeX. Retrieved 29 April 2024.
  243. ^ Kupries, Andreas; Fellows, Donal K. (14 September 2000). "TIP #3: TIP Format". tcl.tk. Tcl Developer Xchange. Archived from the original on 13 July 2017. Retrieved 24 November 2008.
  244. ^ Gustafsson, Per; Niskanen, Raimo (29 January 2007). "EEP 1: EEP Purpose and Guidelines". erlang.org. Archived from the original on 15 June 2020. Retrieved 19 April 2011.
  245. ^ "Swift Evolution Process". Swift Programming Language Evolution repository on GitHub. 18 February 2020. Archived from the original on 27 April 2020. Retrieved 27 April 2020.

Sources

Further reading

External links