Termodinámica
´ PARA C A LCULO CIENT´FICO I
´ Luis Randez
Universidad de Zaragoza
6 de marzo de 2011
Instituto Universitario de Investigación
de Matemáticas y Aplicaciones
´ Luis Randez (IUMA)
´ Introduccion a PYTHON
6 de marzo de 2011
1 / 114
1 2 3 4 5 6 7 8 9 10
´ Introduccion ´ Tipos basicos Controles de flujo Funciones Excepciones Ficheros ipython Numpy ´Graficos Referencias
Instituto Universitario de Investigación
de Matemáticas y Aplicaciones
´ Luis Randez (IUMA)
´ Introduccion a PYTHON
6 de marzo de 2011
2 / 114
´ ¿Que es PYTHON?
´ es un lenguaje de programacion de tipo script creado por ˜ Guido van Rossum a principios de los anos 90, cuyo nombre proviene del grupo ((Monty Python)). El objetivo es un lenguaje con una sintaxis´ muy limpia y con un codigo legible.
PYTHON
´ Figura: Los humoristas britanicos Monty Python
´ Luis Randez (IUMA)
´ Introduccion a PYTHON
6 de marzo de 2011
3 / 114
Caracter´sticas de PYTHON ı
interpretado ´ tipado dinamico: una misma variable puede tomar valores de distinto tipo en
distintos momentos
multiplataforma: Symbian, Unix, Windows, . . . conexiones con otroslenguajes (FORTRAN, CUDA, . . . ) manejo de excepciones orientado a objetos ´ codigo abierto
´ Luis Randez (IUMA)
´ Introduccion a PYTHON
6 de marzo de 2011
4 / 114
f2py: PYTHON & FORTRAN
! definici´n de la funci´n fcn en FORTRAN o o real*8 function fcn(x) real*8 x fcn = sin(x*cos(x**2)) return end unix$ f2py --fcompiler=gfortran -c -m modulo fcn.f unix$ python >>> import modulo >>>modulo.fcn(5.0) -0.97046990369101838
´ Luis Randez (IUMA)
´ Introduccion a PYTHON
6 de marzo de 2011
5 / 114
f2py: PYTHON & FORTRAN
subroutine fun(x,n,m,s) ! pasar vectores real*8 x(n), s integer i,n,m !f2py intent(in) n,m,x,s !f2py intent(out) s !f2py depend(n) x ! x depende de n print*, n,m do i=1,m s = s + x(i) end do return end unix$ f2py --fcompiler=gfortran -c -m modulofun.f90 unix$ ipython In[1]: import modulo In[2]: t=0 In[3]: modulo.fun(array([1.,2.,3.,4.,5.,6.]),6,5,t) 6 5 Out[3]: 15.0
´ ¿Por que PYTHON?
´ ´ desarrollo rapido de codigo lenguaje de muy alto nivel ´ sintaxis clara y sencilla. Mantenimiento facil gran cantidad de librer´as ı ´ lenguaje de proposito general
Figura: TiraEcol sobre PYTHON
´ Luis Randez (IUMA)
´ Introduccion a PYTHON6 de marzo de 2011
7 / 114
palabras clave de
PYTHON
and class elif finally if lambda print while
as continue else for import not raise with
assert def except from in or return yield
break del exec global is pass try
´ Luis Randez (IUMA)
´ Introduccion a PYTHON
6 de marzo de 2011
8 / 114
´ Quien usa PYTHON
Google Yahoo Industrial Light & Magic Walt Disney NASASGI, Inc. . . .
´ Luis Randez (IUMA)
´ Introduccion a PYTHON
6 de marzo de 2011
9 / 114
´ Librer´as utiles para calculo cient´fico ı ´ ı
PYTHON :
Para empezar
´ Librer´a: proporciona herramientas para la generacion y ı ´ manipulacion de arrays. ´ ´ SCIPY Librer´a: optimizacion, Fourier, cuadratura e integracion ı ´ numerica, . . . (depende de NUMPY) ´ ´ SYMPY Librer´a:calculo simbolico ı
NUMPY MATPLOTLIB PIL
´ Librer´a: Graficos 2D y 3D ı
Librer´a: Python Imaging Library ı ´ IPYTHON Interprete mejorado de PYTHON
´ Luis Randez (IUMA)
´ Introduccion a PYTHON
6 de marzo de 2011
10 / 114
De http://www.sagemath.org
Sage is a free open-source mathematics software system licensed under the GPL. It combines the power of many existing open-sourcepackages into a common P YTHON-based interface. Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab.
´ Luis Randez (IUMA)
´ Introduccion a PYTHON
6 de marzo de 2011
11 / 114
´ Consola
´ ´ Interprete basico de comandos
ubuntu-laptop:> python Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) [GCC 4.4.3] on linux2 Type "help", "copyright",...
Regístrate para leer el documento completo.