Top Banner
Scientific Programming with Python Felipe Zapata Reactivity and Molecular Structure Group of the University of Alcala 9 de marzo, 2011
29

Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Dec 18, 2018

Download

Documents

phungthuan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Scientific Programming with Python

Felipe Zapata

Reactivity and Molecular Structure Group of the University of Alcala

9 de marzo, 2011

Page 2: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Contenido

● ¿Porque que programar?● Introducción a Python● Características y herramientas en python● Programación orientada a objetos● Conclusiones

Page 3: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Programación

● Los ordenadores realizan operaciones específicas en tiempo muy cortos.

● No todas las herramientas necesarias están desarrolladas.

● La implementación de las metodologías de resolución de problemas no es un paso trivial.

● Diseñas tus propias herramientas.

Page 4: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

¿Que es un programa?● Secuencia de instrucciones que especifican

como llevar a cabo una labor, como por ejemplo resolver una ecuación diferencial o buscar y editar texto en un documento.

Input : ingresar datos.

Output: desplegar datos

Math: realizar operaciones.

Conditional: comparación de condiciones.

Repetition: operaciones iterativas.

Page 5: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Python● Lenguaje de alto nivel, con interpetración al

vuelo. No más compilación.● Fácil de programar, toma menos tiempo

escribir un programa y los programas resultantes son más cortos y fáciles de leer.

● El interpretador funciona de manera interactiva o en modo script.

Page 6: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Modos ● Modo interactivo. El compilador permite

ejecutar directamente en la shell una secuencia de comandos luego de invocar a Python.

● Modo script

Page 7: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Herramientas en Python

Modulos:● Math. Funciones matematicas básicas.● Numpy. Numerical Python, algebra matricial.● SciPy. open-source software for math,

science, and engineering.● Otras. Random, OS, etc. ● Mytools. Herramientas que crea el usuario.

Page 8: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Variables

Nombres prohíbidos

Page 9: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Expresiones

● La prioridad de los operadores es (),**, *, /,+, -.

● El simbolo # se usa para comentar.● Las expresiones inician en la primera

columna.

Page 10: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Laziness

● Una manera práctica de programar es repetir la menor cantidad de código, en la medida que sea posible.

● El programa se debe estructurar de tal forma que en el esquema principal del programa solo aparezcan las operaciones fundamentales.

● Los detalles de cálculo se deben cargar sobre funciones.

Page 11: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Funciones

● Para invocar las funciones se escribe el nombre de la función con sus respectivos parametros.

● Las variables al interior de la función son variables locales.

Indentación de 4

espacios!!

Page 12: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Condicionales ● Una expresiones booleana es una

expresión que al comparar valores arroja verdadero o falso.

X == Y es X igual a Y

X != Y es X diferente de Y

X > Y es X mayor que y

X < Y es X menor que Y

X >= Y es X mayor o igual que Y

X <= Y es X menor o igual que Y

Page 13: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Condicionales e iteraciónWhile and if

En Python toda expresión no vacia tiene por defecto valor true, es decir lo unico falso en python es

Page 14: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

For Statment

La declaración for itera sobre cualquier secuencia de items que pueda ser iterable.

Page 15: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Strings● Es una secuencia de caracteres

inmutables, que puede ser accesible a través del operador bracket.

● Existen diversidad de métodos para operar con los strings.

Page 16: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Lists● Una lista es una secuencia de valores de

cualquier tipo: enteros, float, caracteres, otras lista, otro tipo de secuencia.

● Son la principal herramienta para manejar secuencias de valores.

● Gran número de métodos que permite su manipulación.

Page 17: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

List Comprehensions

● List comprehensions. Provee un esquema conciso para generar listas.

[expresion for var in range]

Page 18: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

List, files and strings¿Como leer un archivo?

Page 19: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Dictionary

● Un diccionario es como un tipo de lista, pero más general.

● Existe una relación entre los indices, que pueden ser casi cualquier tipo, denominados keys y los valores a los que llevan estas keys.

Element = {1.:'H',6.:'C',7.:'N',8.:'O'}

Page 20: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Histogramas

Page 21: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Tuples

● Una tupla es una secuencia de valores de cualquier tipo, que estan indexados por enteros y son inmutables.

● Las tuplas son el output de diferentes métodos.

Page 22: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

NUMPY

Page 23: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Objetos

● Un objeto es una entidad abstracta que intenta representar un objeto real que tiene una serie de atributos.

● Existen tres razones principales para usar objetos en programación:

Encapsulación.

Polimorfismo.

Herencia.

Page 24: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Encapsulación y herencia

● La encapsulación es esconder del flujo general del programa los detalles innecesarios para que el flujo sea comprensible.

● La herencia es una manera de hacer que las funciones y métodos hereden características funcionales de métodos ya programados.

Page 25: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Polimorfismo

● Independiente de la clase a la que pertenezca el objeto es posible realizar operaciones sobre el objeto cuyo resultado dependera del tipo de objeto que se tiene.

Page 26: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

¿para que sirven los objetos ?Molecular System

Atoms

Vel-Verlet1

Xi(t), Vxi(t/2)

Transformation

qi(t)

Force field

Vel-Verlet2

Vxi(t)

F = - Gx =Bt(Hq(qi-qo))

Page 27: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

abstracciónLas moléculas están formadas por átomos.

Los átomos tienen coordenas espaciales, velocidades, masas y están en un campo de fuerzas.

Luego existe un una colección de objetos pertenecientes a la clase átomos, cuyos atributos son mass, velocidad, cordenadas y fuerza.

Page 28: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Implementación

Verlet1(atomos[i]) ==>Xi(t) + Vxi(t/2)

transformation(Xi(t)) ==> qi

potential(qi) ==> Force field

Verlet2(Force field) == > Vxi(t)

Python permite definir funciones y métodos que hacen la implementación transparente

Page 29: Scientific Programming with Python · Contenido ¿Porque que programar? Introducción a Python Características y herramientas en python Programación orientada a objetos

Conclusiones

● Python es un lenguaje de programación interactivo e interpretativo.

● Python combina una sintaxis clara con una gran poder de manipulación de datos.

● Los modulos de programación científica facilitan el trabajo enormemente.