Publicado el 3 de Septiembre del 2019
887 visualizaciones desde el 3 de Septiembre del 2019
456,5 KB
56 paginas
Creado hace 20a (24/01/2005)
Introducción a Python
Francisco Barranco Expósito
Antonio Guerrero Galindo
Manuel Entrena Casas
Alvaro González Nonay
¿Qué es Python?
Python es un lenguaje de programación interpretado,
interactivo y orientado a objetos. Incorpora módulos,
excepciones, tipado dinámico, tipos de datos dinámicos de
muy alto nivel, y clases.
Python combina potencia con una sintaxis muy clara. Tiene
interfaces a muchas llamadas al sistema y bibliotecas, así
como también a varios sistemas de ventanas, y es extensible
en C o C++.
También es utilizable como un lenguaje de extensión para
aplicaciones que necesiten interfaces programables.
Finalmente, Python es portable, corre en muchas variantes de
Unix, en la Mac, y en PCs bajo MS- DOS, Windows, Windows
NT, y OS/2.
Historia
Fue creado a principios de los 90 por Guido Van Rossum en el Stichting
Mathematisch Centrum (Instituto Nacional de Investigación de Matemáticas
y Ciencias de la Computación en Holanda ), como sucesor de un lenguaje
llamado ABC.
En 1995, Guido continuó su trabajo en la Corporation for National Research
Initiatives (Corporación Nacional de Iniciativas de Investigación), en
Virginia, EE.UU; donde lanzó varias versiones del software.
En Mayo de 2000, Guido y el grupo de desarrolladores del nucleo de Python
se trasladaron a los laboratorios de BeOpen.com.
En Octubre del mismo año se mudaron a Digital Creations, actualmente
Zope Corporation.
En 2001 se fundó la Python Software Foundation (PSF), organización sin
ánimo de lucro, para poseer la propiedad intelectual sobre Python.
Comparaciones: Java vs Python
Los programas Python generalmente son más lentos en ejecución que los
Java, pero se desarrollan en mucho menos tiempo.
Se tarda del orden de 3 a 5 veces menos que un programa equivalente en
Java.
Tal diferencia podría atribuirse a los tipos de datos de alto nivel integrados y al
tipado dinámico de Python.
Por ejemplo, un programador de Python no emplea el tiempo en declarar los
tipos de los argumentos o las variables, y la potencia polimórfica de las
listas y diccionarios de Python, cuyo soporte sintáctico está dentro del
lenguaje, encuentra un uso en casi todos los programas Python.
A causa del tipado en tiempo de ejecución, la ejecución de Python debe
trabajar más:
Por ejemplo, cuando se evalua la expresión a+b, primero inspecciona los
objetos a y b, para hallar su tipo, desconocido en tiempo de compilación.
Luego invoca la operación de suma apropiada, que puede ser un método
sobrecargado definido por el usuario.
Comparaciones: Java vs Python
Por otra parte, Java, puede desarrollar una suma de enteros o
reales muy eficiente, pero requiere la declaración de variables
para a y b, y no permite la sobrecarga del operador suma en
instancias definidas por el usuario.
Por todo esto, Python es mucho mejor empleado como lenguaje
de unión, mientras que Java se caracteriza más como un
lenguaje de implementación de bajo nivel.
Los dos juntos hacen una excelente combinación: los
componentes se desarrollan en Java y son combinados para
formar aplicaciones con Python.
Comparaciones: Smalltalk vs Python
Quizás la mayor diferencia entre Python y Smalltalk es que Python tiene una sitanxis
más de “flujo principal”, lo que echa una mano al entrenamiento de programación.
Como Smalltalk, Python tiene tipado y asignación dinámica, y todo es un objeto.
Sin embargo, Python distingue entre tipos de objetos integrados de clases definidas por
el usuario y actualmente no permite herencia en tipos integrados.
La biblioteca estándar de tipos de datos está mas depurada, pero la de Python está
más orientada a tratar con Internet y todo el mundo del WWW: Email, HTML, FTP,
etc.
Python tiene una filosofía distinta, desde el punto de vista del entorno de desarrollo.
Mientras que Smalltalk tiene un monolítico “sistema de imagen” que comprende
tanto el entorno como el programa de usuario, Python almacena los módulos
estándar y los modulos de usuario en archivos individuales que pueden ser
fácilmente reubicados y distribuidos fuera del sistema.
Una consecuencia, entre otras, es que hay más de una opción a la hora de conectar
una interfaz gráfica de usuario a un programa Python.
Características
Posee una sintaxis sencilla: rápido aprendizaje.
Tratamiento de excepciones con nombre.
Extensible a otros sistemas software.
Flexible en el tratamiento del lenguaje:un módulo que interactuará con un sistema
externo puede ser probado con una “imitación” del sistema escrito en Python.
Es un lenguaje dinámicamente interpretado.
Es orientado a objetos:
Herencia múltiple.
Ligadura dinamica.
Polimorfismo.
Su núcleo es también orientado a objetos: jerarquía de clases.
Portable: está implementado en C estándar usando E/S Posix.
Gratuito, y de libre distribución.
Desventajas
Python no pretende se perfecto para todos los propósitos.
Podemos suponer que la mayoría de los programas escritos hoy en día podrían pasarse
a Python, pero él sólo no sería suficiente para la cantidad de aplicaciones que están
orientadas a componentes compilados.
Por ejemplo, no está indicado para las siguientes aplicaciones:
Algoritmos de compresión de datos:
Estos algoritmos traducen un flujo de datos a una forma más pequeña.
Esto implica examinar cada byte, y hacer un tratamiento estadístico. Para grandes
cantidades de datos los compresores escritos en Python resultan demasiado lentos.
Controladores de dispositivos:
Al igual que antes, una aplicación que realice millones de operaciones en punto flotante
no uniformes será demasiado lenta en Python.
Operaciones críticas de bases de datos.
Operaciones altamente especializadas.
Python en la actualidad: usos
Algunos de los proyectos más importantes que utilizan Python son:
AstraZeneca usa Python para la investigación cooperativa de medicamentos:
AstraZeneca, una de compañías farmacéuticas más importantes del mundo, utiliza Python para
reducir costes e incrementar la productividad en los procesos de identificación farmacológicos.
En Philips, la Linea de Semiconductores es sobre Python: codifica la lógica que controla la
producción de semiconductores.
ForecastWatch.com usa Python para ayudar a los meteorólogos en sus previsiones.
Control de tráfico aéreo: Python y Jython proporcionan las trazas de la interfaz y procesador
usados en el control de tráfico de los aeropuertos.
Industrial Light & Magic es sobre Python: La compañía de efectos especiales que creo
StarWars, usa Python para unir los miles de computadores y componentes de hardware en su
producción de gráficos.
La compañía marítima Tribon Solutions usa Python para incrementar su eficiencia en el diseño
y construcción de buques.
Python colabora con la misión Espacial Shuttle: La United Space Alliance utiliza Python para
enviar soluciones de ingeniería de calidad a un bajo coste.
Sintaxis Python
Comentarios : detrás de #
Asignación : se usa =
Ej:
>>> a=3+2J
>>> # Esto es un comentario
>>>B=7 #asignación
Sintaxis Python
Definición de funciones:
>>>def nombrefunción(arg1,arg2..):
...
...
...
...
...
La indentación delimita qué instrucciones pertenecen a
instrucción1
instrucción2
...................
instrucciónN
la función.
A no ser que se use return, la función devuelve None.
Sintaxis Python
If:
>>>if condicion:
...
... elif condicion:
...
... else:
...
...
instrucciones
instrucciones
instrucciones
Sintaxis Python
For:
>>>for variable in variable_lista:
...
...
instrucciones
Range: usado de la forma range(i) genera la
lista [0,1,...,i].
usado de la forma range(i,j) genera la lista
[i,i+1,...,j-1]
Sintaxis Python
filter(función, lista_arg) devuelve una lista con
los elementos x de lista_arg que cumplen f(x) =
true.
>>>def f(x): return x%2 != 0 and x%3 != 0
...
>>>filter(f, range(2,25))
[5,7,11,13,17,19,23]
Sintaxis Python
map(función, lista_arg) devuelve la lista:
[f(lista_arg[0]),f(lista_arg[1]),...,f(lista_arg[n])]
>>>def cubo(x): return x*x*x
...
>>> map(cubo, range(1,5))
[1,8,27,64]
Sintaxis Python
reduce(funcion, lista_arg) llama a funcion
con los dos primeros elementos de
lista_arg, luego la llama con el tercero y el
resultado anterior, etc. Si sólo hay un
elemento se devuelve este, y si no hay
ninguno da error.
Sintaxis Python
>>>def add(x,y): return x+y
...
>>>reduce(add, range(1,11))
55
Sintaxis Python
List Comprehensions: operaciones muy
intuitivas con listas
>>>vec = [2,4,6]
>>>[3 * x for x in vec]
[6,12,18]
>>>[3 * x for x in vec if x > 3]
[12,18]
>>>[[x,x**2] for x in vec]
[[2,4],[4,16],[6,36]]
Sintaxis Python
Definición y uso de Clases:
>>>class NombreDeClase:
...
...
...
...
sentencia 1
................
sentencia N
>>>variable = NombreDeClase ()
Sintaxis Python
“Una clase de ejemplo”
i = 12435
def f(self):
return “hola mundo”
>>>class MiClase:
...
...
...
...
...
>>>x = MiClase()
>>>x.i
12435
>>>x.f()
“hola mundo”
Sintaxis Python
Se puede incluir una función, llamada init,
que se ejecute siempre que se cree una
instancia de la clase.
Def __init__(self):
instrucciones
init no puede hacer return.
Sintaxis Python
Las variables de instancia no necesitan
declararse.
>>>x=MiClase()
>>>x.numero=7
x.f() equivale a MiClase.f(x
Comentarios de: Introducción a Python (0)
No hay comentarios