Download Introduction to Python
Document related concepts
no text concepts found
Transcript
Herramientas de Desarrollo en Informática (Especialización en Telemática) Ing. Grabiel Guzmán Herramientas de Desarrollo en Informática (Especialización en Telemática) Tabla de contenidos: 1.- ¿Que es PYTHON? 2.- Un poco de historia 3.- Principales Características 4.- Instalación (Linux) 5.- Editores para Python 6.- Entorno integrado de desarrollo (IDE) 7.- Áreas de aplicación. 8.- Ejemplos de programación básicos. 9.- Relaciones con otros lenguajes. Herramientas de Desarrollo en Informática (Especialización en Telemática) 1.- ¿Que es PYTHON? 1.1.- Lenguaje de programación de alto nivel. 1.2.- Interpretado y multipropósito. 1.3.- Utilizado en diversas plataformas. 1.4.- Phyton código abierto (open source). 1.5.- ¿Quien ha utilizado Phyton? Herramientas de Desarrollo en Informática (Especialización en Telemática) 2.- Un poco de historia: Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemáticas y la Informática (CWI, Centrum Wiskunde & Informatica), en los Países Bajos, como un sucesor del lenguaje de programación ABC. En 1991, van Rossum publicó el código de la versión 0.9.0 en alt.sources. En esta etapa del desarrollo ya estaban presentes clases con herencia, manejo de excepciones, funciones y los tipos modulares. En el año 1994 se formó comp.lang.python, el foro de discusión principal de Python, marcando un hito en el crecimiento del grupo de usuarios de este lenguaje. Python alcanzó la versión 1.0 en enero de 1994. Una característica de este lanzamiento fueron las herramientas de la programación funcional: lambda, reduce, filter y map. Van Rossum explicó que “hace 12 años, Python adquirió lambda, reduce(), filter() y map(), cortesía de un hacker de Lisp que las extrañaba y que envió parches”. La última versión liberada proveniente de CWI fue Python 1.2. En 1995, van Rossum continuó su trabajo en Python en la Corporation for National Research Initiatives (CNRI) en Reston, Virginia, donde lanzó varias versiones del software. Herramientas de Desarrollo en Informática (Especialización en Telemática) 2.- Un poco de historia: En el año 2000, el equipo principal de desarrolladores de Python se cambió a BeOpen.com para formar el equipo BeOpen PythonLabs. CNRI pidió que la versión 1.6 fuera pública, continuando su desarrollo hasta que el equipo de desarrollo abandonó CNRI. Después que Python 2.0 fuera publicado por BeOpen.com, Guido van Rossum y los otros desarrolladores de PythonLabs se unieron en Digital Creations. Python 2.0 tomó una característica mayor del lenguaje de programación funcional Haskell: listas por comprensión. Python 2.0 introdujo además un sistema de recolección de basura capaz de recolectar referencias cíclicas. Van Rossum dejó CNRI para trabajar con desarrolladores de software comercial, quedó claro que la opción de usar Python con software disponible bajo GNU GPL era muy deseable. La licencia usada entonces, la Python License, incluía una cláusula estipulando que la licencia estaba gobernada por el estado de Virginia, por lo que, bajo la óptica de los abogados de Free Software Foundation (FSF), se hacía incompatible con GPL. CNRI y FSF se relacionaron para cambiar la licencia de software libre de Python para hacerla compatible con GPL. En el año 2001, van Rossum fue premiado con FSF Award for the Advancement of Free Software. Herramientas de Desarrollo en Informática (Especialización en Telemática) 3.- Principales Características: 3.1.- Interpretado. 3.2.- Multiplataforma. 3.3.- Simplicidad del lenguaje. 3.4.- Orientada a objetos. 3.5.- Uso de identación. 3.6.- Existe un recolector de basura (garbage collector). 3.7.- Facilidad de interactuar con otros lenguajes. 3.8.- Diversas implementaciones del interprete de Python Herramientas de Desarrollo en Informática (Especialización en Telemática) 4.- Instalación (Linux): 4.1.- En Ubuntu 11.10 basta con acceder al centro de software y realizar una búsqueda por python3. En Fedora y Debian incluyen e instalan Python por defecto, algunas utilizan la versión 2.6 y otras la 2.7 4.2.- Para Canaima (sistema de operaciones Venezolano) se abre la consola y se tipea: $ sudo apt-get install python3 // Luego// # python3 Herramientas de Desarrollo en Informática (Especialización en Telemática) 4.- Instalación Canaima (demostración): Herramientas de Desarrollo en Informática (Especialización en Telemática) 4.- Instalación Canaima (demostración): Herramientas de Desarrollo en Informática (Especialización en Telemática) 4.- Instalación Canaima (demostración): Herramientas de Desarrollo en Informática (Especialización en Telemática) 5.- Editores para Python: 5.1.|- Vin y Emacs para unix. 5.2. - gedit para Canaina, ubuntu, fedora, entre otros. Su funcionalidad puede ser ampliada a través de plugins. Herramientas de Desarrollo en Informática (Especialización en Telemática) 6.- Entorno integrado de desarrollo (IDE): 6.1.- Eclipse y NetBeans 6.2.- Otros IDE específicos para Python: Herramientas de Desarrollo en Informática (Especialización en Telemática) 7.- Áreas de aplicación. 7.1.- Desarrollo de software para aplicaciones científicas. 7.2.- Comunicaciones de redes. 7.3.- Creación de juegos. 7.4.- Desarrollo de aplicaciones Web. 7.5.- Desarrollo de aplicaciones de escritorio con interfaz gráfica de usuario (GUI). Herramientas de Desarrollo en Informática (Especialización en Telemática) 8.- Ejemplos de programación básicos: Funciones def factorial(n): f = 1 for i in range(1, n + 1): f *= i return f Herramientas de Desarrollo en Informática (Especialización en Telemática) 8.- Ejemplos de programación básicos: Condicional if >>> i=5 >>> if i>4: ... print "Mayor" ... elif i==4: ... print "Igual" ... else: ... print "Menor" ... Mayor Bucle while n = 1 while n <= 25: print n, n += 1 Clases class Clase: <declaración-1> . . . <declaración-N> class MiClase: """Simple clase de ejemplo""" i = 12345 def f(self): return 'hola mundo' Herramientas de Desarrollo en Informática (Especialización en Telemática) 9.- Relación de con otros lenguajes: Lenguaje C #include <iostream> using namespace std; int main() { int t = 0; while (t < 100000000) { t++; } cout << t << endl; return 0; } Python3 #!/usr/bin/en v python t = 0 while t < 100000000: t = t + 1 print t Ejemplo. Programa de un bucle que, uno a uno, suma cien millones. Herramientas de Desarrollo en Informática (Especialización en Telemática) 9.- Relación de con otros lenguajes: Herramientas de Desarrollo en Informática (Especialización en Telemática) 9.- Relación de con otros lenguajes: 9.1.- Tipado dinámico vs tipado estático Una de las diferencias más grandes entre Python y Java es la forma en la que cada lenguaje maneja las variables. Java le obliga a indicar el tipo de una variable cuando la declara por primera vez y no le permitirá cambiar el tipo más tarde en el programa. Esto se conoce como tipado estático. Por el contrario, Python usa el tipado dinámico, que le permite cambiar el tipo de una variable, remplazando un entero por una cadena, por ejemplo. 9.2.- Llaves vs Indentación Python es un poco raro en cuanto que usa indentación para separar el código en bloques. Java, como la mayoría de otros lenguajes, usa las llaves para definir el principio y el final de cada función o definición de clase. La ventaja de usar indentación es que le obliga a construir su programa en una forma que es fácil de leer, y no habrá ningún error resultante de que falte una llave. Herramientas de Desarrollo en Informática (Especialización en Telemática) 9.- Relación de con otros lenguajes: 9.3.- Velocidad vs Portabilidad La gran ventaja de Java es que puede ser usado para crear aplicaciones independientes de la plataforma. Cualquier ordenador o dispositivo móvil que pueda ejecutar una máquina virtual de Java puede ejecutar una aplicación Java, mientras que para ejecutar programas Python necesita un compilador que pueda convertir el código en Pyhton a código que su sistema operativo en particular pueda entender. Gracias a la popularidad de Java para aplicaciones web y aplicaciones simples de escritorio, la mayoría de los dispositivos ya tienen una máquina virtual de Java instalada, de esta forma un programador Java puede estar seguro que su aplicación podrá ser usada por casi todos los usuarios. El inconveniente de ejecutarse dentro de una máquina virtual es que el programa Java se ejecuta más lentamente que los programas en Python.