Vous êtes sur la page 1sur 31

Clase 06: Programacin bsica en Python

Prof. Edgardo Adrin Franco Martnez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com


@efranco_escom

Introduccin Primer programa Funciones en Python Caractersticas de Python Tipos de datos Estructuras de control Archivos Mas ayuda

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Contenido

Python es un lenguaje de programacin de alto nivel cuya filosofa hace hincapi en una sintaxis muy limpia y que favorezca un cdigo legible. Se trata de un lenguaje de programacin multiparadigma ya que soporta orientacin a objetos, programacin imperativa y, en menor medida, programacin funcional y estructurada. Es un lenguaje interpretado, usa tipado dinmico, es fuertemente tipado y multiplataforma.

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Introduccin

Es administrado por la Python Software Foundation. Posee una licencia de cdigo abierto, denominada Python Software Foundation License, que es compatible con la Licencia pblica general de GNU a partir de la versin 2.1.1, e incompatible en ciertas versiones anteriores. Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemticas y la Informtica, de los Pases Bajos, como un sucesor del lenguaje de programacin ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba.

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Introduccin

Cdigo

seq1 = 'Hola' seq2 = ' mundo!' total = seq1 + seq2 print total
Resultado

Hola mundo!
5

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Primer programa

Definicin de funciones en Python def fib(n): a, b = 0, 1 for i in range(n): a, b = b, a + b return a

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Funciones en Python

Fcil de aprender y de programar Fcil de leer (similar a pseudocdigo) Interpretado (Rpido para programar) Datos de alto nivel (listas, diccionarios, sets, etc.) Libre y gratuito Multiplataforma (Win, Linux y Mac) Pilas incluidas Gran cantidad de bibliotecas con funciones extras Comunidades de desarrollo

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Caractersticas de Python

# Abrir un archivo de texto . . . file_object = open(FILENAME) # Leer todas las lineas del texto en una lista (similar a un array) lista = file_object.readlines() # Ordenar la lista lista.sort()

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Leer archivo y cargarlo en lista

La biblioteca estndar ayuda con:


Servicios del sistema, fecha y hora, subprocesos, sockets, i18n y l10n, base de datos, threads, formatos zip, bzip2, gzip, expresiones regulares, XML (DOM y SAX), Unicode, SGML, HTML, XHTML, email, manejo asincrnico de sockets, clientes HTTP, FTP, SMTP, NNTP, POP3, IMAP4, servidores HTTP, SMTP, debugger, random, curses, logging, compilador, decompilador, CSV, anlisis lexicogrfico, interfaz grfica incorporada, matemtica real y compleja, criptografa, introspeccin, unit testing, doc testing, etc., etc...

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Biblioteca estndar

Bases de datos
MySQL, PostgresSQL, MS SQL, Informix, DB/2, SQLite Qt, GTK, win32, wxWidgets, Cairo Django, Turbogears, Zope, Plone, webpy Biopython: Manejo de secuencias genticas PIL: para trabajar con imgenes PyGame: juegos, presentaciones, grficos SymPy: matemtica simblica Numpy: clculos de alta performance

Interfaces grficas Frameworks Web Y un montn ms de temas...

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Bibliotecas externas

10

>>> 2+2 4 >>> _*4 16 >>> 10/3 3 >>> float(10)/3 3.3333333333333335 >>> 10.0/3 3.3333333333333335 >>> int(2.1) 2 >>> int(2.9) 2 >>> round(2.9) 3.0 >>> int(round(2.9)) 3 >>> round(2.932224,2) 2.9300000000000002 >>> print round(2.932224,2) 2.93

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Prctica en intrprete interactivo

11

>>> "hola" + " mundo!" 'hola mundo!' >>> ("hola" + " mundo!").upper() 'HOLA MUNDO!' >>> ' 123'.strip() '123' >>> 123.strip() File "<stdin>", line 1 123.strip() ^ SyntaxError: invalid syntax >>> >>> str(123) '123' >>> int('123') 123

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Prctica en intrprete interactivo

12

Primarios (o primitivos): No necesitan de otro tipo de datos, como numericos (int, float, decimal, complex) y str (cadenas). Derivados: Agrupan a alguno de los anteriores, como listas, diccionarios, tuplas, etc. Se pueden subclasificar segn distintos parmetros:
Ordenados (o secuenciales) Desordenados Mutables Inmutables

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Tipo de datos: Primarios y derivados

13

>>> type(5) <type 'int'> >>> type(5.0) <type 'float'> >>> type(5 + 5.0) <type 'float'> >>> 5 + 5.0 10.0 >>> type(2+3j) <type 'complex'> >>> (2+3j).real 2.0 >>> (2+3j).imag 3.0 >>> type('Hola!') <type 'str'> >>> 'hola' + ' mundo!' 'hola mundo!' >>> 'hela' + 2 Traceback (most recent call last): File "<pyshell#32>", line 1, in <module> 'hela' + 2 TypeError: cannot concatenate 'str' and 'int' objects >>> 'hela' + str(2) 'hela2'

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

14

El problema de los nmeros flotantes: >>> 0.1 + 0.1 + 0.1 - 0.3 5.5511151231257827e-17 Una manera de evitar esto: >>> round(0.1 + 0.1 + 0.1 - 0.3,1) 0.0 Alternativamente, para no perder precisin: >>> from decimal import Decimal >>> Decimal('0.1') + Decimal('0.1') + Decimal('0.1') Decimal('0.3') Decimal('0.0') Mas informacin: http://docs.python.org/library/decimal.html

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Decimal

15

>>> 'Hola mundo!' 'Hola mundo!' >>> a='Hola mundo!' >>> len(a) 11 >>> a.lower() 'hola mundo!' >>> a.count('o') 2 >>> a.find('H') 0 >>> a.find('mundo') 5 >>> a.find('e') -1 >>> a.index(' ') 4 >>> a.index('e') Traceback (most recent call last): File "<pyshell#52>", line 1, in <module> a.index('e') ValueError: substring not found >>> a.split(' ') ['Hola', 'mundo!'] http://docs.python.org/library/string.html

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

str (String o Cadenas)

16

Datos ordenados: Listas


>>> >>> >>> [1, >>> 5 >>> [1, >>> [1, >>> [1, >>> >>> [1, >>> >>> [1, >>> 1 >>> 4 >>> [4, >>> 5 mi_lista = [1,2,3] mi_lista.append(5) mi_lista 2, 3, 5] mi_lista.pop() mi_lista 2, 3] mi_lista + [4] 2, 3, 4] mi_lista 2, 3] mi_lista = mi_lista + [4] mi_lista 2, 3, 4] mi_lista.extend([5,6]) mi_lista 2, 3, 4, 5, 6] mi_lista[0] mi_lista[3] mi_lista[3:5] 5] mi_lista[-2]
Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

17

Mas sobre listas:


>>> variada = ['boga', 'cornalito', 'tararira'] >>> variada[2] 'tararira' >>> variada[2][2:8] 'rarira' >>> variada[2][2:] 'rarira' >>> variada.append('pulpo') >>> variada ['boga', 'cornalito', 'tararira', 'pulpo'] >>> variada.remove('cornalito') >>> variada ['boga', 'tararira', 'pulpo'] >>> variada.sort() >>> variada ['boga', 'pulpo', 'tararira'] >>> variada.index('pulpo') 1 >>> variada.index('pulpa') Traceback (most recent call last): File "<pyshell#33>", line 1, in <module> variada.index('pulpa') ValueError: list.index(x): x not in list >>> 'pulpo' in variada True >>> 'pulpa' in variada False
Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

18

Sets (Conjuntos)
>>> mi_set = set() >>> mi_set.add('jose') >>> mi_set.add('juan') >>> mi_set.add('natalia') >>> mi_set.add('viki') >>> mi_set set(['jose', 'juan', 'viki', 'natalia']) >>> mi_set.pop() 'jose' >>> mi_set set(['juan', 'viki', 'natalia']) >>> mi_set.add('jose') >>> mi_set set(['jose', 'juan', 'viki', 'natalia']) >>> mi_set.add('jose') >>> mi_set set(['jose', 'juan', 'viki', 'natalia']) >>> otro_set = set(['juan','karina','diana']) >>> otro_set set(['diana', 'juan', 'karina']) >>> mi_set.intersection(otro_set) set(['juan']) >>> mi_set.union(otro_set) set(['jose', 'viki', 'natalia', 'diana', 'juan', 'karina']) >>> mi_set.difference(otro_set) set(['jose', 'viki', 'natalia'])
Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

19

20

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Entrada:
input('prompt') raw_input('prompt') >>> edad = input('Ingrese la edad: ') Ingrese la edad: 33 >>> edad 33 >>> edad = raw_input('Ingrese la edad: ') Ingrese la edad: 33 >>> edad '33' Python 3: input() es raw_input()

Salida:
print Python 3: print() 21

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Data I/O

if: Condicin

for: Repeticin

Estructuras de control de flujo

while: Repeticin

22

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

if <expresion1>: <Instrucciones> elif <expresion2>: <Instrucciones> else: <Instrucciones>

if coord != 'N/A': year = int(coord[0][-4:])


23

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

if

for

for x in [1, 3, 4]: print x

for <var> in <iterable>: <instrucciones>

24

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

while

while <expresion>: <instrucciones>

while mi_set: print mi_set.pop()

25

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Lectura:
(1) Abrir (open) (2) Leer (read, readlines, readline) (3) Cerrar (close)

Escritura:
(1) Abrir (open) (2) Guardar (write) (3) Cerrar (close)
26

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Archivos

(1) La funcin open crea un filehandle.

open(filename[, mode[, bufsize]]) Ej: fh = open('mi_archivo.txt','r')

(2) read(n): Lee n bytes, por defecto lee el archivo entero. readline(): Devuelve str con una sola linea readlines(): Devuelve una lista con str por cada lnea 27

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Leyendo un archivo

fh = open('archivo.txt') contenido = fh.readlines() print contenido

contenido = '' fh = open('archivo.txt') while True: line = fh.readline() contenido += line if line='' break print contenido # Para todos: fh.close()

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

fh = open('archivo.txt') contenido = fh.read() print contenido

28

fh = open('archivo.txt') contenido = '' for line in fh: contenido += line fh.close()

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Apertura secuencial de un archivo

29

Modos de escritura: w: Write, graba un archivo nuevo, si existe, borrarlo. a: Append (agregar), agrega informacin al final de un archivo pre-existente. Si no existe, crea uno nuevo (uso tpico: logs).

Ejemplo:
fh = open('/home/yo/archivo.txt','w') fh.write('1\n2\n3\n4\n5\n') fh.close()

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Escribiendo archivos

30

Manual de Python: http://pyspanishdoc.sourceforge.net/tut/tut.html List para incio: http://groups.google.com/group/a-python Mas recursos: http://python.org.ar/pyar/AprendiendoPython

Teora computacional Clase 06: Programacin bsica en Python Prof. Edgardo Adrin Franco Martnez

Mas ayuda...

31

Vous aimerez peut-être aussi