PDF de programación - Tema 0 Introducción - Curso de Python Avanzado

Imágen de pdf Tema 0 Introducción - Curso de Python Avanzado

Tema 0 Introducción - Curso de Python Avanzadográfica de visualizaciones

Publicado el 5 de Mayo del 2018
635 visualizaciones desde el 5 de Mayo del 2018
806,4 KB
40 paginas
Creado hace 12a (01/05/2011)
Tema 0 Introducción
Curso de Python Avanzado

Juan Pedro Bolívar Puente

Instituto de Astrofísica de Andalucía

Mayo de 2011

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

1 / 40

Índice

Introducción
1
2 Herramientas
3 Repaso
4 Módulos
5 Documentacion
6 Ejemplos

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

2 / 40

Índice

Introducción

Introducción
1
2 Herramientas
3 Repaso
4 Módulos
5 Documentacion
6 Ejemplos

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

3 / 40

Introducción

Página web

http://www.sinusoid.es/python-avanzado

Tutorías

[email protected]

¿Dónde?

Sala de Juntas del Instituto de Astrofísica de Andalucía

¿Cuándo?

9 a 13 de Mayo de 2011, de 9:00 a 14:30 (25 horas)

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

4 / 40

Introducción

Objetivos

Aprender el lenguaje con profundidad
Aprender a hacer aplicaciones grandes
’Idioms’, modularidad, organización
Aprender a hacer aplicaciones modernas
Interfaces gráficas, web
Aprender a hacer aplicaciones buenas
Pruebas, eficiencia, ...

¡En Python!

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

5 / 40

Introducción

¡Volvernos renacentistas!

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

6 / 40

Índice

Herramientas

Introducción
1
2 Herramientas
3 Repaso
4 Módulos
5 Documentacion
6 Ejemplos

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

7 / 40

Herramientas

IPython es tu amigo

Se recomienda usar ipython

In [0]: %quickref
In [1]: %alias
In [2]: ls
In [3]: ! top
In [4]: print _i , __i , _ih [1:2]
In [5]: dir list
In [6]: %who
In [7]: open ( ’t < TAB >
In [8]: %timeit

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

8 / 40

Herramientas

Pizarra virtual

gobby nos servirá para editar colaborativamente

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

9 / 40

Herramientas

El mejor editor del mundo ...

Es delicioso usar todo esto en emacs

Integra ipython
Ejecuta código
directamente
Resalta errores
Se conecta con
gobby

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

10 / 40

Índice

Repaso

Introducción
1
2 Herramientas
3 Repaso
4 Módulos
5 Documentacion
6 Ejemplos

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

11 / 40

Valores y operadores

Repaso

1 == 1
1 is 1
[1] == [1]
[1] is [1]
type (1.2)
a = 2
a += 1
print a

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

12 / 40

Listas y cadenas

Repaso

s = ’ abc ’
s . replace ( ’b ’ , ’B ’)
print s
’ hola ’ is ’ hola ’
s2 = list ( s )
s2 [1] = ’B ’
print s2
print ’ ’. join ( s2 )
range (2 , 22 , 2)
[3 , ’ hola ’ , 5.2]
[ x **2 for x in range (10) if x %2==0]
if []:

print " No me ejecuto "

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

13 / 40

Diccionarios

Repaso

a = { ’ java ’ : ’ i n q u i s i c i o n ’ ,

’ python ’ : ’ r e n a c i m i e n t o ’ ,
’ lisp ’ : 1958 ,
’ cobol ’ : None }

a [ ’ python ’] == ’ r e n a c i m i e n t o ’
a [ ’ lisp ’] += 1
del a [ ’ java ’]
b = dict ([(1 , 9) , (1 , 10) , (2 , 20)])
n = ’ Juan Pedro Bolivar Puente ’
dict ( zip ( range ( len ( n )) , n ))

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

14 / 40

Bucles e IO

Repaso

for idx in range (5):

print idx

for key , val in b . i te ri t em s ():

print key , ’ -> ’ , val

while True :

s = r aw _i n pu t ( ’ Dime guapo : ’)
if s . lower () == ’ guapo ’:

break

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

15 / 40

Funciones e IO

Repaso

import sys
def a cr os t ic o ( fname ):

f = open ( fname )
for x in f . r ea dl i ne s ():

sys . stdout . write (

x [0]. replace ( ’\ n ’ , ’ ’ ))

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

16 / 40

Funciones

Repaso

def saludar ( d e sp ed i da = False ):

if d es pe d id a :

print " Adios mundo ! "

else :

print " hola mundo ! "

saludar ()
saludar ( True )
saludar ( d e sp ed i da = True )

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

17 / 40

Índice

Módulos

Introducción
1
2 Herramientas
3 Repaso
4 Módulos
5 Documentacion
6 Ejemplos

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

18 / 40

Módulos

Módulos

Modulo = Espacio de nombres

Agrupa funciones, clases, constantes, globales ...

Ejemplo: Importar un módulo

import os
print os . name

Ejemplo: Importar un nombre

from os import name
print name

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

19 / 40

Modulos

Módulos

Ejemplo: Importar un submódulo

import os . path
from os import path
print path . join ( ’ una ’ , ’ ruta ’)

Ejemplo: Renombrado

import os . path as p
print p . exists ( ’/ ’)

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

20 / 40

Módulos

Modulos

Terminologia

Modulo Módulo hoja.

Es un fichero .py

Paquete Módulo con submódulos.

Es un directorio con fichero

init .py

A veces usaremos indistintamente el termino módulo

¡Atención!

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

21 / 40

Búsqueda de módulos

Módulos

Busca en todos los directorios de sys.path

1 Para los modulos, busca un fichero .py con su

nombre en el directorio actual.

2 Para los paquetes, busca un subdirectorio con un

fichero

init .py en el directorio actual.

Si no encuentra tira ImportError

sys . path = [ os . getcwd () ] + \

P Y T H O N P A T H + \
i n s t a l l a t i o n d ep en d en t

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

22 / 40

Carga de un módulo

Módulos

1 El módulo ¡se ejecuta!
2 En un paquete, se ejecuta
init .py.
3 Los nombres creados ⇒ objeto módulo.

4

name

contiene el nombre de nuestro módulo.

5 Módulo raiz se llama

main

Patrón “funcion main”

if __name__ == ’ __main__ ’:

e j e c u t a r _ f u n c i o n _ m a i n ()

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

23 / 40

Índice

Documentacion

Introducción
1
2 Herramientas
3 Repaso
4 Módulos
5 Documentacion
6 Ejemplos

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

24 / 40

Documentacion

Documentacion

Docstring
La primera cadena de cada módulo, clase o función es
considerada de documentación.

Acceso
help (objeto) ⇒ interactivo.
objeto. doc ⇒ programático.
Usar cadenas triples ‘‘ ‘‘ ‘‘

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

25 / 40

Documentacion

Recomendaciones

Usar marcadores estilo JavaDoc
@param x: Un parametro ’x’
@return Valor de retorno.
@raise e Tira tal tipo de excepción.
@author Autor de un modulo, clase, funcion...

@date Fecha de creacion.

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

26 / 40

Documentacion

Recomendaciones

Usar marcadores estilo Sphinx
:param x: Un parametro ’x’
:return: Valor de retorno.
:raise e: Tira tal tipo de excepción.
:author: Autor de un modulo, clase, funcion...

:date: Fecha de creacion.

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

27 / 40

Documentacion

Recomendaciones

Usar estilos reStructuredText

Titulo
======
S ub ti t ul o
- - - - - - - - -
* Elemento 1
* Elemento 2
1. Ordenado 1
2. Ordenado 2

*cursiva*, **negrita**, \*, ...

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

28 / 40

Documentacion

Manejándose con la documentación

pydoc permite ver la documentación de cualquier

cosa desde la consola o el navegador

$ pydoc modulo

$ pydoc -w fichero ...

$ pydoc -g

$ pydoc -p <port>

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

29 / 40

Documentacion

ReStructuredText

doctutils permite trabajar con ficheros ReST

Es una biblioteca y demás trae utilidades

$ rst2html fich.rst > fich.html

$ rst2latex fich.rst > fich.tex

$ rst2odt fich.rst > fich.tex

... etc ...

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

30 / 40

Documentacion

Otras herramientas ...

Epydoc

Automática, sencilla de usar
Permite sintáxis JavaDoc
Ejemplo
http://epydoc.sourceforge.net/stdlib/

Sphinx

Menos automática
Produce documentación de más calidad
Ejemplo http://docs.python.org/library/

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

31 / 40

Índice

Ejemplos

Introducción
1
2 Herramientas
3 Repaso
4 Módulos
5 Documentacion
6 Ejemplos

Juan Pedro Bolívar Puente (Instituto de Astrofísica de Andalucía)

Tema 0 Introducción

Mayo de 2011

32 / 40

Ejemplo

Ejemplos

module bad

Usa UTF-8 sin directiva
No documenta.
Submodulos sin
Función de prueba sin
“patrón main”.

in
  • Links de descarga
http://lwp-l.com/pdf10836

Comentarios de: Tema 0 Introducción - Curso de Python Avanzado (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad