Python para programadores

65
1 Python para programadores Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers— Cuong Do, Software Architect, YouTube.com Ivan Meza

Transcript of Python para programadores

1

Python para programadores

Python is fast enough for our site and allows us to produce maintainable features in recordtimes, with a minimum of developers—

Cuong Do, Software Architect, YouTube.com

Ivan Meza

2

Tipos de datos

3

True False1 2 1.3 0.34 "hola" "mundo"

3

4

Variables

5

variable=5 variable+1 

variable="hola"variable+" mundo"

5

6

Estructuras de datos

7

[1,2,3] (1,2,3) {"hola":1,"mundo":2,"!",3}

7

8

Listas

9

lista=[1,2,3] lista.append(4) lista.append(5) print lista lista.pop() print lista print len(lista)

9

10

print lista[0] print lista[­1] print lista[1:2] print list2[:1] print lista[­2:] lista[1]=20 print lista

10

11

lista=["hola",1,"mundo"] print lista lista.append(True) print lista

11

12

Tuplas

13

tupla=(1,2,3) print tupla[0] print tupla[­1] print tupla[1:2] print tupla[:2] print tupla[­2:] print len(tupla)

13

14

Diccionarios

15

diccionario={'hola':3,'mundo':2,'!':1} print diccionario print diccionario['mundo'] print diccionario.keys() print diccionario.values() print diccionario.items()

15

16

rara=[({'hola':1,"mundo":2},"hola mundo"),["hola","mundo"]]

16

17

Programas

18

Ejecuciónpython miprograma.py

19

instruccion1 instruccion2 instruccion_de_control:   instruccion_bloque_1   instruccion_bloque_2 instruccion_de_control:   instruccion_bloque_3   instruccion_bloque_4 instruccion_de_control:   instruccion_de_control:     instruccion_bloque_5     instruccion_bloque_6     instruccion_bloque_7     instruccion_bloque_8

19

20

Control: _if_

21

if variable == 0:   print "Este valor es igual a cero" else:   print "Este valor no es igual a cero"

21

22

if variable == 0:   print "Este valor es igual a cero" elif variable==1:   print "Este valor no es igual a uno" elif variable==2:   print "Este valor no es igual a dos" else:   print "Este valor no es cero, uno o dos"

22

23

Control: _for_

24

Control: _for_

25

lista=['hola','mundo'] for w in lista:   print "Este es un elemento de la lista",w

25

26

lista=range(10) print lista for i in lista:   print "Contando...",i

26

27

tupla=(1,2,3) print "Iterando una tupla",tupla for i in tupla:   print i

27

28

diccionario={"hola":1,"mundo":2} print "Iterando el diccionario directamente",diccionario for k,v in diccionario.itermitems():   print "Llave:",i   print "Valor:",v

28

29

print "Iterando la listas de lementos de un diccionario",diccionario for k,v in diccionario.items():   print "Llave:",i   print "Valor:",v

29

30

Control: _while_

31

i=0 while i<10:   print "Contanndo con while...",i   i+=1

31

32

i=0 while True:   print "Contanndo con while...",i   if i==10:     break   i+=1

32

33

while True:   pass #Esta instrucción no hace nada

33

34

Modulos

35

36

import time print "Hola..." time.sleep(1) print "...mundo!"

36

37

help(time)

37

38

from math import log print "Log of 100",log(100)

38

39

import random as ra print "Escogeré un valor", ra.choice(['one','two','three'])

39

40

Funciones

41

def print_percentage(val):   per=val*100   print str(per)+"%" 

print_percentage(0.1) print_percentage(0.02)

41

42

def suma_lista(lista):   val=0   for l in lista:     val+=1   return val 

print suma_lista(range(20)) print suma_lista(range(200))

42

43

def fib(n):   if n < 2:     return n   return fib(n­2) + fib(n­1) 

fib(10) fib(20)

43

44

Modulos propios

45

import mimodulo 

    mimodulo.print_percentage(0.1)     mimodulo.print_percentage(0.02)

    mimodulo.suma_lista(range(20))     mimodulo.suma_lista(range(200))

    mimodulo.fib(10)     mimodulo.fib(20)

45

46

Archivos

47

archivo=open('tmp','w') for i in range(10):   print >> archivo, i, "hola mundo!" archivo.close()

47

48

archivo=open('tmp',"r")     for linea in archivo:        print linea     archivo.close()

48

49

archivo=open('tmp') for linea in archivo:   linea=linea.strip()   print linea archivo.close()

49

50

archivo=open('tmp') for linea in archivo:   line=linea.strip()   bits=line.split()   print bits[­1] archivo.close()

50

51

Más sobre listas

52

lista_original=range(100) nueva_lista=[i*i for i in lista_original] print nueva_lista

52

53

nueva_lista=[i*i for i in lista_original if i%2==0] print nueva_lista

53

54

Imprimiendo cadenas

55

lista=[(1,2),(2,3),(3,4),(4,5),(5,6)] for val0,val1 in lista:   print "{1} {0}".format(val0,val1)

55

56

lista=[(i*1.0/100,j*1.0/100) for i,j in lista] for val0,val1 in lista:   print "{1:2.3f} {0:2.5f}".format(val0,val1)

56

57

lista=["{0:2.3f}".format(i) for i,j in lista ] print ":".join(lista)

57

58

Habilidades Ninja

59

def count(palabra,ini=0,fin=20):   for i in range(ini,fin):     print palabra,i 

    count("Contando...",10,30)     count("Contando de nuevo...",15)     count("Contando de nuevo otra vez...")     count("Contando de nuevo...",ini=3,fin=8)     count("Contando de nuevo...",fin=5,ini=3)

59

60

import argparse 

p = argparse.ArgumentParser("Ejemplo") p.add_argument("Archivo_1",default=None,       action="store", help="Archivo Uno") p.add_argument("Archivo_2",default=None,       action="store", help="Archivo Dos") p.add_argument("­o", "­­opcion1",default=None,type=str,       action="store", dest="op_1",       help="Opcion 2") p.add_argument("", "­­opcion2",default="Valor2",type=str,       action="store", dest="op_2",       help="Opcion 2") p.add_argument("­n", "­­nueva_opcion",default="Valor3",type=str,       action="store", dest="op_3",       help="Argumento") 

opts = p.parse_args()

60

61

python programa.py python programa.py ­h python programa.py archivo1 archivo2 python 12_linea_de_commandos.py ­o 1 ­­opcion2 2 ­n 3 archivo1 archivo2

61

62

Errores

63

1/0

63

64

lista=range(100) residuos_3={} 

for i in lista:  try:     residuos_3[i%3]+=1   except KeyError:     residuos_3[i%3]=1

[email protected] ivanvladimir.github.io ivanvladimir

64

65

Python para programadores by is licensed under a.

Creado a partir de la obra en.

Ivan V. Meza RuizCreative Commons Reconocimiento 4.0 Internacional License

http://turing.iimas.unam.mx/~ivanvladimir/slides/lfya/python.html