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.