Publicado el 21 de Diciembre del 2019
1.695 visualizaciones desde el 21 de Diciembre del 2019
1,0 MB
149 paginas
Creado hace 20a (07/04/2005)
Universidad de Deusto
. . . .
ESIDE
Curso de Python
Dr. Diego Lz. de Ipiña Gz. de Artaza
http://paginaspersonales.deusto.es/dipina
Semana ESIDE 2005, 7 de Abril
Universidad de Deusto
. . . .
ESIDE
Contenido
Python básico
Sintaxis.
Instrucciones básicas.
Tipo de datos.
Orientación a objetos
Paquetes esenciales de Python: XML, bases
de datos, programación web.
Universidad de Deusto
. . . .
ESIDE
El otro lenguaje de programación
que empieza con 'P'
Python fue creado por Guido van Rossum
(http://www.python.org/~guido/)
Da este nombre al lenguaje inspirado por el
popular grupo cómico británico Monty Python
Guido creó Python durante unas
vacaciones de navidad en las que (al
parecer) se estaba aburriendo
Universidad de Deusto
. . . .
ESIDE
Hola Mundo en Python
#!/usr/bin/env python
print "Hola Mundo" # "Hola Mundo"
print "hola", "mundo" # "hola mundo"
print "Hola" + "Mundo" # "HolaMundo"
Universidad de Deusto
. . . .
ESIDE
Características de Python I
Muy legible y elegante
Imposible escribir código ofuscado
Simple y poderoso
Minimalista: todo aquello innecesario no hay que escribirlo (;, {,
}, '\n')
Muy denso: poco código hace mucho
Soporta objetos y estructuras de datos de alto nivel: strings,
Múltiples niveles de organizar código: funciones, clases,
listas, diccionarios, etc.
módulos, y paquetes
Python standard library
(http://www.python.org/doc/current/lib/lib.html) contiene un sinfín
de clases de utilidad
Si hay áreas que son lentas se pueden reemplazar por plugins
en C o C++, siguiendo la API para extender o empotrar Python
en una aplicación, o a través de herramientas como SWIG, sip
o Pyrex.
Universidad de Deusto
. . . .
ESIDE
Características de Python II
De scripting
No tienes que declarar constantes y variables antes de utilizarlas
No requiere paso de compilación/linkage
La primera vez que se ejecuta un script de Python se compila y
genera bytecode que es luego interpretado
Alta velocidad de desarrollo y buen rendimiento
Código interoperable (como en Java "write once run everywhere")
Se puede utilizar en múltiples plataforma (más aún que Java)
Puedes incluso ejecutar Python dentro de una JVM (Jython)
Open source
De propósito general
más
Razón por la cual la Python Library sigue creciendo
Puedes hacer en Python todo lo que puedes hacer con C# o Java, o
Universidad de Deusto
. . . .
ESIDE
Peculiaridades sintácticas
Python usa tabulación (o espaciado) para mostrar
estructura de bloques
Tabula una vez para indicar comienzo de bloque
Des-tabula para indicar el final del bloque
Código en C/Java
Código en Python
if (x) {
if x:
if (y) {
f1();
}
f2();
}
if y:
f1()
f2()
Universidad de Deusto
. . . .
ESIDE
Python vs. Perl
Los dos están basados en un buen
entendimiento de las herramientas necesarias
para resolver problemas
Perl está basado en awk, sed, and shell scripting y su
misión es hacer las tareas de administradores de
sistemas más sencillas
Python está basado e inspirando en OOP (Object-
oriented programming)
Guido van Rossum diseñó un lenguaje simple, poderoso, y
elegante orientado a la creación de sistemas a partir de
componentes
Universidad de Deusto
. . . .
ESIDE
Python vs. Java
Java es un lenguaje de programación muy completo
que ofrece:
Amplio abanico de tipos de datos
Soporte para threads
Strong typing
Y mucho más ...
Python es un lenguaje de scripting:
No ofrece strong typing
Bueno para prototipos pero malo para grandes sistemas
Puede cascar en tiempo de ejecución
Todo lo que puedes hacer con Java también lo puedes hacer
con Python
Incluso puedes acceder a través de Python a las API de Java si
usas Jython (http://www.jython.org)
Universidad de Deusto
. . . .
ESIDE
Python vs. Jython
Python
También llamado Cpython
Implementación del lenguaje Python en C
Python C API permite extender Python con librerías
realizadas en C
Partes que requieren mayor rendimiento en Python
están implementadas en C o C++ y tan sólo
contienen una pequeña capa de Python encima
Jython
Implementación de Python en Java
Permite acceder a todas las APIs de Java
P.E. Podemos producir Swing GUIs desde Python
Universidad de Deusto
. . . .
ESIDE
¿Para qué [no] es útil?
Python no es el lenguaje perfecto, no es bueno para:
Programación de bajo nivel (system-programming), como
programación de drivers y kernels
Python es de demasiado alto nivel, no hay control directo sobre
memoria y otras tareas de bajo nivel
Aplicaciones que requieren alta capacidad de computo
No hay nada mejor para este tipo de aplicaciones que el viejo C
Python es ideal:
juntos
Como lenguaje "pegamento" para combinar varios componentes
Para llevar a cabo prototipos de sistema
Para la elaboración de aplicaciones cliente
Para desarrollo web y de sistemas distribuidos
Para el desarrollo de tareas científicas, en los que hay que simular
y prototipar rápidamente
Universidad de Deusto
. . . .
ESIDE
Instalar Python
Bajar la última versión de Python (2.4) de
http://www.python.org/download/
Para Windows ejecutar instalador
Opcionalmente bajarse extensiones Python para Windows32
de: http://starship.python.net/crew/mhammond/
Podemos editar nuestro código Python con Notepad2 (Alt-H):
http://www.flos-freeware.ch/notepad2.html
Para Linux:
En Debian Sarge: apt-get install python2.4
Para Fedora y Mandrake se pueden obtener los rpms de:
http://www.python.org/2.4/rpms.html
rpm -iv python2.4-2.4-1pydotorg.i386.rpm
Universidad de Deusto
. . . .
ESIDEUsando Python desde línea de
comando
Para arrancar el intérprete (Python interactivo) ejecutar:
C:\>python
Python 2.4 (#60, Nov 30 2004, 11:49:19) [MSC v.1310 32
bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more
information.
>>>
Un comando simple:
>>> print "Hola Mundo"
Hola Mundo
>>>
Para salir del intérprete Ctrl-D (en Linux) o Ctrl-Z (en Windows) o:
>>> import sys
>>> sys.exit()
$
Universidad de Deusto
. . . .
ESIDEEjecutando programa
holamundo.py
Python desde script:
Guardar las siguientes sentencias en fichero:
holamundo.py
#!/usr/bin/env python
print “Kaixo Mundua!"
Ejecutar el script desde línea de comando:
$ python helloworld.py
Kaixo Mundua!
$
Universidad de Deusto
. . . .
ESIDE
Sentencias y bloques
Las sentencias acaban en nueva línea, no en ;
Los bloques son indicados por tabulaciónque sigue a una sentencia
acabada en ':'. E.j. (bloque.py):
# comentarios de línea se indican con carácter '#'
name = "Diego1" # asignación de valor a variable
if name == "Diego":
print "Aupa Diego"
else:
print "¿Quién eres?"
print "¡No eres Diego!"
$ python bloque.py
¿Quién eres?
¡No eres Diego!
Universidad de Deusto
. . . .
ESIDE
Identificadores
Los identificadores sirven para nombrar variables, funciones y
módulos
Deben empezar con un carácter no numérico y contener letras,
números y '_'
Palabras reservadas:
Python es case sensitive(sensible a la capitalización)
and elif global or assert else if pass break except
import print class exec in raise continue finally
is return def for lambda try del from not while
Variables y funciones delimitadas por __ corresponden a símbolos
implícitamente definidos:
__name__ nombre de función
__doc__ documentación sobre una función
__init__() constructor de una clase
__dict__, diccionario utilizado para guardar los atributos de un
objeto
Universidad de Deusto
. . . .
ESIDE
Tipos de datos I
Numéricos (integer, long integer, floating-point, and
complex)
>>> x = 4
>>> int (x)
4
>>> long(x)
4L
>>> float(x)
4.0
>>> complex (4, .2)
(4+0.2j)
Universidad de Deusto
. . . .
ESIDE
Tipos de datos II
Strings, delimitados por un par de (', " ,""")
Dos string juntos sin delimitador se unen
>>> print "Hi" "there"
Hithere
Los códigos de escape se expresan a través de '\':
>>>print '\n'
Raw strings
>>> print r'\n\\' # no se 'escapa' \n
Lo mismo ' que ", p.e. "\\[foo\\]" r'\[foo\]'
Algunos de los métodos que se pueden aplicar a un string son:
>>> len('La vida es mucho mejor con Python.')
>>> 34
>>> 'La vida es mucho mejor con Python.'.upper()
'LA VIDA ES MUCHO MEJOR CON PYTHON'
>>> "La vida es mucho mejor con Python".find("Python")
27
>>> "La vida es mucho mejor con Python".find('Perl')
-1
>>> 'La vida es mucho mejor con Python'.replace('Python', 'Jython')
'La vida es mucho mejor con Jython'
Universidad de Deusto
. . . .
ESIDE
Tipos de datos III
El módulo string de la Python library defi
Comentarios de: Curso de Python (0)
No hay comentarios