0% encontró este documento útil (0 votos)
356 vistas35 páginas

Metodos Numericos Con Python y Los Super Amigos

Cargado por

valeriaeh
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
356 vistas35 páginas

Metodos Numericos Con Python y Los Super Amigos

Cargado por

valeriaeh
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 35

Introduccin o

Operadores

Variables y formatos

Scripts y funciones

Mtodos Numricos con Python e e y los Super Amigos

Departamento de Matemticas a Facultad de Ciencias Exactas y Naturales Universidad de Antioquia

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

Los Super Amigos (software adicional para Python)

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

Lenguajes de programacin ms populares o a

Imagen tomada de http://www.tiobe.com/

Introduccin o

Operadores

Variables y formatos

Scripts y funciones

Instalacin de la Liga de la Justicia o


GNU/Linux (distribuciones basadas en debian): sudo apt-get install ipython python-scipy python-matplotlib mayavi2 \ python-sympy cython python-networkx python-pexpect python-nose \ python-setuptools python-sphinx python-pygments \ python-twisted python-foolscap sudo apt-get build-dep python python-scipy python-matplotlib mayavi2 \ cython

Windows y Mac OSX: Enthought Python Distribution http://www.enthought.com/products/epd.php


(distribucin gratuita para nes acadmicos) o e

Introduccin o

Operadores

Variables y formatos

Scripts y funciones

Iniciando sesin en GNU/Linux o


Sesin de Python o $ python Python 2.5.2 (r252:60911, Jan 20 2010, 23:33:04) [GCC 4.3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> Sesin de iPython o $ ipython Python 2.5.2 (r252:60911, Jan 20 2010, 23:33:04) Type "copyright", "credits" or "license" for more information. IPython 0.8.4 -- An enhanced Interactive Python. ? -> Introduction and overview of IPythons features. %quickref -> Quick reference. help -> Pythons own help system. object? -> Details about object. ?object also works, ?? prints more. In [1]:

Introduccin o

Operadores

Variables y formatos

Scripts y funciones

Iniciando sesin de iPython en Windows o

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 [1]: 3+4 Out[1]: 7

In [5]: 5.0/(10*2+5) Out[5]: 0.20000000000000001

In [2]: 3/4 Out[2]: 0

In [6]: 2**3**2 Out[6]: 512

In [3]: 3.0/4.0 Out[3]: 0.75

In [7]: (2**3)**2 Out[7]: 64

In [4]: 5.0/10*2+5 Out[4]: 6

In [8]: 17 % 3 % 2 Out[8]: 0

Introduccin o

Operadores

Variables y formatos

Scripts y funciones

Operadores relacionales (de comparacin) o


Tipos de datos lgicos: o
False (0) True (1)
Operador == != < > <= >= Operacin o Igual a Diferente de Menor que Mayor que Menor o igual que Mayor o igual que Ejemplo 4 == 5 2!=3 10 < 4 5>-4 7<=7 3.5 >= 10 Resultado False True False True True False

In [9]: 1+2>7-3 Out[9]: False

In [13]: 3>4<5 Out[13]: False

In [10]: 1<2<3 Out[10]: True

In [14]: 1.0/3<0.33333 Out[14]: False

In [11]: 1>2==2<3 Out[11]: False

In [15]: 5.0/3>=11/7.0 Out[15]: True

In [12]: 1>(2==2)<3 Out[12]: True

In [16]: 2**(2/3)<3**(3/4) Out[16]: True

Introduccin o

Operadores

Variables y formatos

Scripts y funciones

Operadores lgicos (booleanos) o


Operador and or not A True True False False B True False True False A and B True False False False Operacin o conjuncin o disyuncin o negacin o A or B True True True False not A False False True True Ejemplo False and True False or True not True Resultado False True False Jerarqua (mayor)

Operador () ** *, /, //, % ==, !=, <, >, <=, >= not and or

(menor)

In [17]: False and True or True Out[17]: True

In [20]: 5*4 > 4 and 0 < 3 Out[20]: True

In [18]: 0 and 1 or 1 Out[18]: 1

In [21]: True or (2 == 1+2) == True Out[21]: True

In [19]: 0 and (1 or 1) Out[19]: 0

In [22]: 2**(3 and 0/5)>45 % 6 Out[22]: False

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

Ejemplo True o False 327 24334253234L 3.1416 3.0 + 4.0j hola


38

, 3.4 10

i i

(1, aja, 2.0) [1, aja, 2.0] a:7.0, 23: True

1.7 10308 , 1.7 10308

h i 3.4 104932 , 3.4 104932

Introduccin o

Operadores

Variables y formatos

Scripts y funciones

Identicadores y palabras reservadas


Palabras reservadas
and elif global or yield del from not while def for lambda try continue finally is return class exec in raise break except import print assert else if pass del

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 [24]: print base 2 In [25]: print "base" Out[25]: base

In [31]: area == 2*a Out[31]: True In [32]: x = "uno"; y = "dos"

In [26]: base = base + 1

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 [27]: base Out[27]: 3

In [28]: alt = 4

In [29]: area = base*alt; a=3

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 [47]: milista Out[47]: [2.0,hola, 3.0, True,otro]

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 [52]: lista2 Out[52]: []

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 [54]: lista2 Out[54]: [a]

In [60]: 3 in lt Out[60]: False In [61]: range(8) Out[61]: [0, 1, 2, 3, 4, 5, 6, 7]

In [55]: lista2.insert(2,"b")

In [56]: lista2 Out[56]: [a, b]

In [62]: range(3,7) Out[62]: [3, 4, 5, 6] In [63]: range(4,10,2) Out[63]: [4, 6, 8]

In [57]: lt = (1, 2, True, "python")

Introduccin o

Operadores

Variables y formatos

Scripts y funciones

Conversiones de tipo, funciones bsicas a


Operacin o int(x) long(x) float(x) complex(x) complex(x,y) Descripcin o Convierte x a entero Convierte x a entero largo Convierte x a punto otante Convierte x al complejo x+0j Convierte al complejo x+yj Funcin o abs(x) max(sucesion) min(sucesion) round(x,n) cmp(x,y) Descripcin o Valor absoluto de x Mayor elemento de sucesion Menor elemento de sucesion Redondea al decimal n Retorna -1, 0, 1 si x<y, x==y, x>y

In [64]: x = -5

In [70]: print float(z) 6.0 In [71]: complex(x) Out[60]: (-5+0j)

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

In [68]: print int(p) 3 In [69]: abs(x) 5

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 [76]: print a Out[76]: 2

In [81]:s=eval(raw input("Ingrese s: ")) Ingrese a: 2*3

In [77]: a Out[77]: 2

In [82]: print s, type(s) Out[82]: 6 <type int>

In [78]: type(a) Out[78]: <type str>

In [83]:m=eval(raw input("Ingrese m: ")) Ingrese a: hola


----------------------------------------------------TypeError Traceback (most recent call last)

In [79]: b = eval(a)

TypeError: name hola is not defined

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

In [88]: print "v = %9.2f" % v v = 1234.57

In [86]: print u, v 6543 1234.56789

In [88]: print "v = %7.8f" % v v = 1234.56789000

In [87]: print "u = %6d" % u u = 6543

In [81]: print "v = %.2e" % v v = 1.23e+03

In [88]: print "u = %06d" % u u = 006543

In [81]: print "u= %6d y v= %8.4e" % (u,v) u= 6543 y v=1.2346e+03

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

# Progarma hola mundo, version "emo" print "Hola, maldito mundo!"

#! /usr/bin/env python print "Hola, maldito mundo!"

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 [95]: suma(2,3) 5 In [96]: a = -4

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

Funciones denidas en scripts


Ejemplo 4.3 (Promedio de dos nmeros) u Escriba una funcin en Python que reciba como entradas dos nmeros A y B y o u calcule su promedio. Solucin o

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)

In [103]: from promedio import *

In [104]: prom(2,3) El promedio de 2.000000 y 3.000000 es 2.500000

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

In [103]:from rectangulofun import perimetro

In [104]: area(2,3) El area es 6.000000

In [104]: perimetro(2,3) El perimetro es 10.000000

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

R. Gonzles a Python para todos http://mundogeek.net/tutorial-python/

J. Kiusalaas Numerical Methods in Engineering with Python Cambridge University Press, 2005

También podría gustarte