Metodos Numericos Con Python y Los Super Amigos
Metodos Numericos Con Python y Los Super Amigos
Operadores
Variables y formatos
Scripts y funciones
Copyleft 2010. Reproduccin permitida bajo los o trminos de la licencia de documentacin libre GNU. e o
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Contenido
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Aspectos generales
http://www.python.org/ Lenguaje de programacin de alto nivel, interpretado o Creado por Guido van Rossum a principios de los aos 90 n Multiplataforma (UNIX, Solaris, Linux, DOS, Windows, OS/2, Mac OS, etc.) Software libre: Python Software Foundation License (PSFL) Tipado dinmico a Fuertemente tipado Orientado a objetos
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
NumPy: paquete fundamental para computacin cient o ca SciPy: librer para computacin cient a o ca (extiende a NumPy) matplotlib: librer para grcos 2D (soporta grcos 3D tambin) a a a e Mayavi: librer para grcos y visualizacin de datos 3D a a o iPython: consola interactiva para python
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Operadores aritmticos e
Operador ** * / // + % Operacin o Potencia Multiplicacin o Divisin o Divisin entera o Suma Resta Mdulo (residuo) o Ejemplo 23 73 10.5/2 10.5//2 3+4 68 15 %6 Resultado 8 21 5.25 5.0 7 2 3 Operador () ** *, /, //, % +, Jerarqu a (mayor) (menor)
In [8]: 17 % 3 % 2 Out[8]: 0
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Operador () ** *, /, //, % ==, !=, <, >, <=, >= not and or
(menor)
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Tipos de datos
Tipo bool int long int float complex str tuple list dict Descripcin o booleano entero entero largo real (punto otante) complejo string (cadena) tupla lista diccionario bits 8 16 32 32 32 32 32 64 80 h h Rango sin rango h i 215 , 215 1 h i 0, 232 1 h i 231 , 231 1 h i 0, 232 1 h i 231 , 231 1 3.4 10
38
, 3.4 10
i i
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Identicadores
Nombres que hacen referencia a los objetos que componen un programa: constantes, variables, funciones, etc. Reglas para construir identicadores:
El primer carcter debe ser una letra o el carcter de subrayado a a El primer carcter puede ir seguido de un n mero variable de d a u gitos numricos, letras o carcteres de subrayado e a No pueden utilizarse espacios en blanco, ni s mbolos de puntuacin o Python distingue may sculas y min sculas u u No pueden utilizarse palabras reservadas del lenguaje
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Variables
In [23]: base = 2 In [30]: a=2*a
In [33]: x Out[33]: uno In [34]: print x uno In [35]: x+y Out[35]: unodos In [36]: print x+y unodos
In [28]: alt = 4
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Listas y tuplas
In [37]: milista=[a, "hola", 3.0, True] In [44]: milista Out[44]: [2.0, hola, 3.0, True] In [45]: milista[-1] Out[45]: True In [46]: milista.append("otro")
In [38]: milista Out[38]: [3, hola, 3.0, True] In [39]: milista[0] Out[39]: 3 In [40]: milista[1] Out[40]: hola In [41]: milista[2] Out[41]: 3.0 In [42]: milista[1:3] Out[42]: [hola, 3.0] In [43]: milista[0] = 2.0
In [48]: milista[:2] Out[48]: [2.0, hola] In [49]: milista[1:] Out[49]: [hola, 3.0, True, otro] In [50]: lista2[]
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Listas y tuplas
In [51]: milista=[a, "hola", 3.0, True] In [58]: lt Out[58]: (1, 2, True, python)
In [59]: lt[0]=3
----------------------------------------------------TypeError Traceback (most recent call last) TypeError: tuple object does not support item assignment
In [53]: lista2.insert(1,"a")
In [55]: lista2.insert(2,"b")
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
In [64]: x = -5
In [65]: y = 4
In [66]: p = 3.1416 In [72]: complex(x,y) Out[72]: (-5+4j) In [67]: z = 6.3 In [73]: print round(p,2) 3.14 In [74]: cmp(x,y) Out[74]: -1
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Instrucciones de entrada/salida
Entrada de datos:
raw input("entrada"): lee una l nea de entrada que es convertida a string eval(string): convierte string en un valor numrico e In [75]: a = raw input("Ingrese a: ") Ingrese a: 2 In [80]: print b, type(b) Out[80]: 2 <type int>
In [77]: a Out[77]: 2
In [79]: b = eval(a)
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Instrucciones de entrada/salida
Salida de datos:
print objeto1, objeto2, ... print " %formato1 %formato2 " % tupla In [84]: u = 6543 In [88]: print "v = %7.2f" % v v = 1234.57
Entero Punto otante Notacin exponencial o d f e
In [85]: v = 1234.56789
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Programas
Scripts:
Archivos de texto plano sin formato Tiene extensin .py o Contienen una sucesin de comandos de Python o No tienen parmetros (argumentos) de entrada ni de salida a Las variables denidas en los scripts son globales
Funciones:
Secuencia de sentencias que ejecuta una operacin deseada y tiene un o nombre Las funciones tienen sintaxis especial Tienen parmetros (argumentos) de entrada y de salida a Las variables denidas en funciones son locales
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Editores en Linux
Gedit: http://projects.gnome.org/gedit/
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Editores en Linux
Pymacs (Emacs + Python): http://pymacs.progiciels-bpi.ca/
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Editores en Linux
Geany: http://www.geany.org/
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Editores en Linux
SPE (Stanis Python Editor): http://pythonide.blogspot.com/
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Editores en Linux
Erik: http://eric-ide.python-projects.org/
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Editores en Windows
Gedit: http://projects.gnome.org/gedit/
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Editores en Windows
IDLE
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
HolaMundo1.py
HolaMundo2.py
invitado@matematicas06:/scripts ls -l total 12 -rw-r--r-- 1 invitado invitado 68 2010-02-03 14:02 HolaMundo1.py -rw-r--r-- 1 invitado invitado 54 2010-02-03 14:03 HolaMundo2.py invitado@matematicas06:/scripts chmod a+x HolaMundo2.py invitado@matematicas06:/scripts ls -l total 12 -rw-r--r-- 1 invitado invitado 68 2010-02-03 14:02 HolaMundo1.py -rwxr-xr-x 1 invitado invitado 54 2010-02-03 14:03 HolaMundo2.py invitado@matematicas06:/scripts python HolaMundo1.py Hola, maldito mundo! invitado@matematicas06:/scripts ./HolaMundo2.py Hola, maldito mundo!
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
HolaMundo3.py
#! /usr/bin/env python # Programa hola mundo version matematica import sys, math # carga sistema y modulo matematico r = float(sys.argv[1]) # extrae argumento de la linea de comandos s = math.cos(r) print "Hola, maldito Mundo! cos("+ str(r) + ")="+ str(s) invitado@matematicas06:/scripts ls -l total 12 -rw-r--r-- 1 invitado invitado 68 2010-02-03 14:02 HolaMundo1.py -rw-r--r-- 1 invitado invitado 54 2010-02-03 14:03 HolaMundo2.py -rw-r--r-- 1 invitado invitado 267 2010-02-03 14:06 HolaMundo3.py invitado@matematicas06:/scripts chmod a+x HolaMundo3.py invitado@matematicas06:/scripts ls -l HolaMundo3.py -rwxr-xr-x 1 aleph aleph 267 2010-02-03 14:06 HolaMundo3.py invitado@matematicas06:/scripts ./HolaMundo3.py 0 Hola, maldito Mundo! cos(0.0)=1.0
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Ejemplos de scripts
Ejemplo 4.1 (Promedio de dos nmeros) u Escriba un programa (script) en Python que reciba como entradas dos nmeros A u y B y calcule su promedio. Solucin o
promedio.py
# Calcula el promedio de dos numeros # Lee los valores de A y B A = eval(raw input("Ingrese A: ")) B = eval(raw input("Ingrese B: ")) # Calcula el promedio PROM = (A+B)/2.0; # Imprime el promedio print "El promedio de %f y %f es %f" % (A, B, PROM)
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Ejemplos de scripts
Ejemplo 4.2 (Area y per metro de un rectngulo) a Escriba un programa (script) en Python tal que dado como datos la base y la altura de un rectngulo, calcule su per a metro y rea. a Solucin o
rectangulo.py # Calcula el area y perimetro de un rectangulo % Lee los valores de la base y la altura BASE = eval(raw input("Ingrese la base: ")) ALTURA = eval(raw input("Ingrese la altura: ")) AREA = BASE*ALTURA; PERIMETRO = 2.0*(BASE+ALTURA); print "El area es %f y el permetro es %f" % AREA, PERIMETRO);
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Funciones
Sintaxis de una funcin o def NOMBRE( LISTA DE PARAMETROS ): SENTENCIAS In [94]: def suma(x,y): ...: print x+y ...: ...: In [99]: suma(abs(-2),-3) -1 In [100]: def deja espacio(): ...: print # linea vacia ...: ...:
In [101]: 8*3; deja espacio(); 2*3 Out[101]: 24 Out[101]: 6 In [102]: deja espacio(3)
In [97]: b = 5
In [98]: suma(a,b) 1
----------------------------------------------------TypeError Traceback (most recent call last) TypeError: deja espacio() takes no arguments (1 given)
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
promedio.py
# Funcion que calcula el promedio de dos numeros def prom(A,B): C = (A+B)/2.0 print "El promedio de %f y %f es %f" % (A, B, C)
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Ejemplos de scripts
Ejemplo 4.4 (Area y per metro de un rectngulo) a Escriba un script en Python que contenga funciones que calculen el per metro y el rea de un rectngulo, dados su base y altura. a a Solucin o
rectangulo.py
In [107]: ar
----------------------------------------------------Traceback (most recent call last) NameError NameError: name ar is not defined
def area(base,altura): ar = base*altura print "El area es %f" % ar def perimetro(base,altura): per = 2.0*(base+altura) print "El perimetro es %f" % per In [103]:from rectangulofun import area
In [108]: perimetro(2,3)
----------------------------------------------------NameError Traceback (most recent call last) NameError: name perimetro is not defined
Introduccin o
Operadores
Variables y formatos
Scripts y funciones
Referencias
J. Elkner, A. Downey, C. Meyers How to Think Like a Computer Scientist: Learning with Python http://openbookproject.net//thinkCSpy/index.html
J. Kiusalaas Numerical Methods in Engineering with Python Cambridge University Press, 2005