Curso Python

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 104
 
Python - Guia de clases
Ing. Pedro Mu˜noz del Riopmunoz@gmail.comLima, Per´u
 
El curso para el cu´al este documento ha sido creado es una introducci´on para programadores allenguaje de programaci´on Python y es parte de una serie de cursos cuyo fin es introducir al lectoren el desarrollo de sofware mediante esta potente herramienta.Los objetivos del curso son familiarizar al estudiante con los principales elementos del lenguaje yense˜nar a pensar de forma “pythonica”, de tal manera que pueda empezar a elaborar sus propiosprogramas.Al terminar las clases, el alumno debe conocer y comprender los componentes fundamentales dellenguaje de programaci´on y estar en capacidad de pensar y resolver problemas utilizando Python.La presente Gu´ıa es un complemento a las clases dictadas de forma presencial. Se ha redactado pa-ra servir como hoja de ruta en el transcurso de las sesiones y como estructura del contenido a dictarse.
i
5
 
´Indice
1. Programar 1
1.1. Programaci´on en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.1. Codificaci´on de las instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.2. Programar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.3. Lenguaje ensamblador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.4. Lenguajes de programacon . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.5. Compiladores e interpretes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.6. Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2. ¿Qu´e es Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2.1. Utilizaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4. Tipos asicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4.1. Cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4.2. Bool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.5. Operadores aritm´eticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2. Estructuras de control 9
2.1. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2. Operadores ogicos y de comparaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3. Sentencias condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.1. Sentencia if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3.2. En caso contrario (else) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3.3. Condicionales ultiples (elif) . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4. Sentencias iterativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4.1. La sentencia while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.4.2. El bucle for-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4.3. Rotura y salto en bucles: break y continue . . . . . . . . . . . . . . . . . . . . 152.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3. Tipos de datos estructurados 18
3.1. Cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.1.1. Escapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.1.2. Longitud e indexaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.1.3. Subcadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.1.4. Recorrido de cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.1.5. Comparaci´on de cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.2. Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
ii
5
 
3.2.1. Comparaci´on de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2.2. Modificar, agregar y eliminar elementos a listas . . . . . . . . . . . . . . . . . 213.2.3. Pertenencia a una lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2.4. Listas por comprensi´on (List Comprehensions) . . . . . . . . . . . . . . . . . . 233.2.5. Copiado de una lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.3. Tuplas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.4. Diccionarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4. Funciones y odulos 26
4.1. Uso de las funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.2. Definici´on de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.2.1. Paametros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.3. Paametros por valor y referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.4. Variables locales y globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.5. Buenas pacticas con funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.6. odulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.6.1. Arquitectura de un programa en Python . . . . . . . . . . . . . . . . . . . . . 314.7. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5. Programaci´on orientada a objetos 33
5.1. POO en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.2. Clases y Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.2.1. Atributos compartidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.2.2. Esandares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.2.3. Herencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.2.4. Poliformismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365.2.5. Atributos especiales de las clases . . . . . . . . . . . . . . . . . . . . . . . . . 375.2.6. Sobrecarga de operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2.7. Constructores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6. Excepciones 40
6.1. Las Excepciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.1.1. Captura de excepciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.1.2. Levantamiento de excepciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.1.3. Excepciones denidas por el usuario . . . . . . . . . . . . . . . . . . . . . . . . 426.1.4. Terminar acciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426.1.5. Uso de las excepciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7. Decoradores 44
7.1. Decoradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447.1.1. ´Ambito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447.1.2. Vida de una variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457.1.3. Argumentos y par´ametros de una funci´on . . . . . . . . . . . . . . . . . . . . . 457.1.4. Funciones anidadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457.1.5. Las funciones son objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457.1.6. Closures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
iii
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5

Recompense su curiosidad

Todo lo que desea leer.
En cualquier momento. En cualquier lugar. Cualquier dispositivo.
Sin compromisos. Cancele cuando quiera.
576648e32a3d8b82ca71961b7a986505