Tutorial de Python orientado a objetos

Documentos relacionados
Introducción a Python Qué es Python?

Estructuras de control: Las variables: Fuertemente tipado: Tipado dinámico: Variables booleanas: Qué son las estructuras de control?

PERIODO 3 SOFTWARE MANEJADOR DE BASE DE DATOS CONCEPTOS INTERMEDIOS DE MICROSOFT ACCESS

Python Tkinter Introducción (Interface gráfica)

1.- CREACIÓN DE CONSULTAS.

Fundamentos de la POO 1

07 Variables. 7.1 Variables globales Definición

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

crear con python Materiales de inicio a la programacion con codigo Ejercicios practicos con soluciones

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Primeros pasos programando en Python

Ejercicio paso a paso. Crear, abrir y cerrar una base de datos

Manual Excel Macros

UNIDAD 10. LAS CONSULTAS DE ACCIÓN

Introducción a Python. Cecilia Manzino

Clases y objetos en python (Programacion Orientada a Objetos)

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

3.- Seleccionamos la tabla CLIENTES y pulsamos el botón Agregar. Una vez hecho esto cerramos el cuadro Mostrar tabla con el botón Cerrar.

ACTIVIDADES BASE DE DATOS ACCESS 2007

OpenOffice.org Writer El procesador de texto. [Seleccionar fecha] [Escribir el nombre de la compañía] Lourdes Luengo

Qué es Microsoft Word?... 2 Cómo ingresar a Microsoft Word?... 2 Cómo salir de Microsoft Word?... 4

PYTHON. Programación estructurada

FileMaker Pro 14. Inventario

Cómo añadir preguntas a un cuestionario de Moodle?

Manual rápido para evaluación de series en Python

import math # Importa la libreria math, que permite utilizar operaciones y funciones matematicas

Taller: Adobe Flash. Tutorial 2: LA PELÍCULA PRINCIPAL: ELEMENTOS Y PROPIEDADES

Guía Rápida para el Uso del Centro de Soporte DQM Guía Rápida para el Uso del Centro de Soporte DQM

GUIA DE CREACIÓN DE REPORTES VARIABLES

PROGRAMAS PARA LA CLASSPAD MANAGER.

La forma más fácil e intuitiva de crear macros es crearlas mediante el grabador de macros del que dispone Excel.

Cadenas de caracteres

EJERCICIO 33 DE EXCEL

Crear una macro automáticamente

MANUAL DE MACROS EXCEL 2010

Manual Power Point Patrones

Información adicional para el usuario Fiery EXP250 Color Server, versión 1.0 para la DocuColor 240/250

Manual Access Consultas de Acción

Gestión de bases de datos de mysql desde Dreamweaver

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda

Práctica 8 Recibos y más recibos.

Definición de una base de datos. Un manejador de base de datos es un programa que permite administrar y organizar una serie de datos.

DEMOSTRACION DE UNA APLICACIÓN N-CAPASCON JAVA- POSTGRESQL

OPENOFFICE IMPRESS. Creación básica de presentaciones digitales

Combinar correspondencia

Tema 7: Árbol Binario

IESTP MOTUPE MICROSOFT WORD 2016

ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) EN C

PROPIEDADES DE LOS CAMPOS. Cada campo de una tabla dispone de una serie de características que proporcionan un control

Introducción Excel 2007

Clase 2: El Lenguaje Python

PROPIEDADES DE LOS CAMPOS ACCESS Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Práctico 2: Funciones y Punteros en C La teoría general para este práctico puede consultarse en los Capítulos 4 y 5 Notas de Clase

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

WORD AVANZADO. Guía Paso a Paso. Desarrollado por Ing. Marcelo Pickelny Lic. Eugenia Tarrachano

Plantillas y formularios. Word Autor: Viviana M. Lloret Prof. de Matemática e Informática Blog: aulamatic.blogspot.com

Elementos esenciales de Word

Estructura de datos y de la información Boletín de problemas - Tema 10

GENERADOR DE LIBROS ELECTRONICOS

ALMACENAMIENTO Y RECUPERACIÓN DE UN LIBRO

INCIO DE WORD. Mis primeros pasos

Centrar Barra formato Formato de celdas Alineación Horizontal Derecha

1. En primer lugar, seleccionamos la celda o caracteres a los que queremos aplicar el nuevo formato.

El entorno de Word 2016

There are no translations available. Aprende a crear un formulario en línea que nos devuelva las respuestas efectuadas por nuestros alumnos...

ING1310 Introducción a la Computación. Python. Conceptos Básicos. Carlos Reveco

How to 5 Creación de usuarios y grupos

PROGRAMACIÓN EN BATCH Programar en batch supone programar archivos con la extensión.bat.

PROYECTO FINAL DE CARRERA Manual de Usuario.

Estructuras de Datos

ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

Formato para prácticas de laboratorio

Instalación de Point Linux versión 3.2

Combinar correspondencia

Microsoft OneNote. Descarga del contenido para móvil

Gestión Delegada de Usuarios

PYTHON. Programación básica

Implementando TADs en Python

En esta práctica vamos a realizar una base de datos sencilla pero completa mediante Microsoft Access.

TALLER # 6 ACCESS FORMULARIOS

Programación en Python

Data Bases 2. La sintaxis precisa de esta función es: mysql_pconnect (nombre del servidor, el usuario de la base de datos, password ) ;

Transcripción:

Tutorial de Python orientado a objetos En la primera llave creamos una clase llamada Gelantia. En la primera parte def init (self, tam, color, sabor): definimos las características del objeto. En la segunda parte def desplegarc(self): podremos recuperar la información que le hemos asignado al objeto. En la segunda llave le damos las propiedades a los objetos gel1, gel2 y gel2. En la llave tres llamamos a def DesplegarC(self): para ver las propiedades que le hemos asignado a los objetos. 1

Otro ejemplo para que tú lo analices 2

Python Poo Herencia Este será el resultado: 3

Herencia múltiple Hemos definido una nueva clase llamada Telefono. La hereda la clase Celular, que recibe herencia múltiple ya que recibe la herencia Electrodomestico. Ya podemos utilizar cel.llamar() y cel.colgar() que definimos en la clase Telefono. 4

Este será el resultado: Nota: Si las clases Electrodometicos y Telefonos tuvieran un método con el mismo nombre tiene prioridad la herencia que se encuentran a la izquierda es este caso cogería el método de Electrodomestico. 5

Python Poo Encapsulamiento Como podrás observar a la hora de dar atributos a una clase podemos definir un atributo de tipo privado self. dia = dia, si lo queremos recuperar nos dará un mensaje de error, en el resultado podrás observar como el valor del mes si lo podemos visualizar pero el valor del día nos da un mensaje de error. 6

La llave grande define la creación de la clase Nacimiento. Al método def init (self): no le pasamos parámetros, se los asignamos en las líneas continuas. Verás que el primer valor que le asignamos es self. anio = 2000, el doble guion bajo hacemos que la variable sea de tipo privada, es decir que no tendremos acceso directamente como en los ejemplos anteriores. Definimos un método set que al estar dentro de la clase tiene acceso al valor de las variables, en este caso def setmes(self, mes): que admite como parámetro el valor del mes y antes de ser asignado comprueba si esta valor es correcto o no, si es correcto lo asigna con self. mes = mes y si es falso retorna un mensaje print( Mes invalido. ). Para poder ver la información del mes que no es pública utilizaremos el método get Def getmes(self): dond nos retornoará el valor de self. mes. Después de crear un objeto de tipo Nacimiento objeto = Nacimiento() 7

Le pasamos al mes le damos el valor 45 objeto.setmes(45). Para ver el resultado print (objeto.getmes()) como no es un mes correcto imprime Mes invalido, e imprime el valor que se le asignó al principio. A continuación al mes le damos el valor 6 objeto.setmes(6). Para ver el resultado print (objeto.getmes()) como el valor es correcto imprime el número 6. 8

Python Poo Estructura de Datos Lista Vamos a crear tres clases una llamada la clase Nodo, la clase Lista y la clase principal. Vamos a especificar todas las cosas que van a tener el elemento de la lista. En este ejemplo vamos a trabajar con nombre y edad. Dentro del Nodo vamos a crear el método def init(self): Con self. Definimos los objetos Nombre = vacío y edad = 0. Mediante self.siguiente = None (con esto conseguimos apuntar el al siguiente nodo. Nombre Edad Siguiente Nada Nombre Nombre Nombre Edad Edad Edad Siguiente Siguiente Siguiente Nada Definimos nuestro método principal def init (self): Self.raiz = Nodo() Al objeto raíz le asignamos el método Nodo() que estará vacía. 9

Ahora vamos a crear el método insertar. Con el primer if controlamos que si el nombre del primer elemento de la lista está vacia el método raíz va a insertar el nodo al primer elemento. Si no else definimos la variable aux = self.raiz para que guarde la posición donde tenemos que insertar el nuevo nodo. (Nombre y Edad). En un bucle while, mientras este sea True que compare si aux.siguinete == None (vacio), después le pasamos al objeto aux.siguiete el valor de nodo, si se cumple se rompe el bucle y sino la variable aux asume el valor de aux.siguiente. Ahora vamos a crear el método consultar. El objeto aux y aux2 se van a encargar a recoger toda la lista entre todos sus elementos. Con el primer if controlaremos si la lista está vacia, si es así nos mostrará el siguiente mensaje La lista está vacia. Sino else que imprima el nombre y la edad y mientas while el objeto aux.siguiente sea = (distinto) de vacío, accedemos al siguiente para que lo muestre. 10

Ahora vamos a crear el método eliminar. Para ello vamos a crear un objeto llamado aux = self.raiz para ir haciendo el recorrido. Si if aux.nombre == None (vacio) que nos diga que no hay elementos que se puedan eliminar. Sino else elemento = input( Escribe el nombre a eliminar ) que lo asignaremos a la variable elemento. Si aux.nombre == elemento: la persona que queremos eliminar y además el valor de la lista siguiente está vacio, creamos un nuevo Nodo() con lo cual quedará totalmente vacia. Mientas while aux.nombre = None (distinto a vacío) agregaremos una condición. Sino else pasmos los valores de la lista siguiente a la lista actual self.raiz = aux.siguiente La variable t de tipo boolean le asignamos el valor True. Sino else mientras while aux.siguiente = None and t: aux = aux.siguiente (ir a la siguiente posición) Si aux.nombre == elementos (que estamos buscando) aux2.siguiente = aux.siguiente, el aux2.siguiente va una posición atrás del aux.siguiente. y al final aux = None y t = False aux y aux2 aux Nombre Nombre Nombre Edad Edad Edad Siguiente Siguiente Siguiente 11

En la clase principal vamos a instanciar un objeto lista de la clase Lista(). Creamos un menú con las siguientes opciones que se detallan con las llaves. Por mediación de input vamos a asignar un valor al objeto opcion para que pueda realizar las opciones detalladas del 1 al 4. Si opción == 1 con nodo = Nodo() vamos a instanciar un objeto nodo de la clase Nodo(). Preguntamos por el nombre y edad que se le asignan a sus correspondientes objetos. Con lista.insertar(nodo) llamamos al método insertas. Si opción == 2 con lista.consultar() llamamos al método consultar. Si opción == 3 con lista.eliminar() llamamos al método eliminar. Si opción == 4 con break rompemos el bucle y termina el programa. Python Poo Estructura de datos Pila I Trabajando con Pilas. Guardar los valores del 1 hasta el 10 en la pila. Luego vemos los valores que hemos almacenado. Guardamos los valores del 1 hasta el 10 en la pila con ayuda del ciclo for y el parámetro range. Luego vemos los valores que hemos almacenado. Lo mismo pero con un rango de 1 hasta 100. Guardamos los valores del 1 hasta el 100, pero aquellos que sean pares, utilizando la condición elemento % 2 == 0, es decir que son divisible por 2 es decir pares. Luego vemos los valores que hemos almacenado. 12

Almacenamos en la pila los valores comprendidos entre 1 hasta 100 pero a su ver los multiplica por 5. Luego vemos los valores que hemos almacenado. Asignamos a la pila los valores del 1 hasta el 5. Vemos los valores que hemos almacenado. Con la instrucción pila.pop() eliminamos el último valor de la pila Y luego vemos los valores que tenemos almacenados y el número 5 ya no está. Con la instrucción pila.append(7) agregamos el valor 7 en la última posición de la pila Vemos los valores que hemos almacenado. 13

14

Hemos cambiado el código del método de la consulta para que muestre la información en modo de pila, este será el resultado: 15

Forma de pila Si queremos que cada vez que aparezca el menú se borre la pantalla. Para ejecutarlo desde Windows haremos doble clic sobre el archivo que hemos creado. 16

Ahora vamos a modificar el método eliminar() y el método consultar(): Ahora lo podrás ejecutar de nuevo. 17

Python POO Estructura de datos Pila II En la clase Nodo definimos un objeto que tendrá las siguientes variables: Nombre, edad y atras. En la clase Pilla creamos los siguientes métodos: El método inicial def init (self): tendrá una variable self.topo = Nodo() El método def insertar(self, nodo): comparará si la variable nombre está vacía, si es así creará la pila para poder insertar el nombre y la edad sino se colocará antes de los datos que tiene la pila para introducir el nuevo dato. El método def eliminar(self): comprobamos si nombre está vacía, si es así que emprima el mensaje La pila está vacía y un pause para poder ver el mensaje, sino self.tope si se situa antes del último valor, de este modo el puntero de dirección al siguiente dato se rompe, 18

imprime el valor que hemos eliminado, hay una pausa para poder ver el mensaje y si aux.atras es igual a nada que cree una nueva pila self.tope = Nodo(). Con el método def consultar(self): la variable aux asume el valor self.tope el final de la pila, si aux.nombre == Nove: (que está vacia) que imprima el mensaje La pila está vacia sino es así mientas aux sea distinto a nada que imprima el nombre y la edad, con aux = aux.atras nos vamos a los datos anteriores para volverlos a imprimir, este bucle lo realizará mientras aux distinto a None, al final un pause para poder ver los datos. El método class Principal: crearemos un menú para que el usuario por teclado pueda elegir la opción que desee y con condiciones iremos llamando los correspondientes métodos. 19

Python POO Estructura de Datos-Cola I 20

Python POO Estructura de Datos-Cola II 21

22

Python POO Especial Agenda (Capítulo final) Vamos a crear una agenda: #Ejercicio Agenda import os class Archivo: def init (self): self.lista = [] def iniciararchivo(self): archivo = open("agenda.txt","a") archivo.close() def escribirarchivo(self): archivo = open("agenda.txt","w") self.lista.sort() for elemento in self.lista: archivo.write(elemento+"\n") archivo.close() def cargaragenda(self): archivo = open("agenda.txt","r") linea = archivo.readline() if linea: while linea: if linea[-1]=='\n': linea = linea[:-1] self.lista.append(linea) linea = archivo.readline() archivo.close() def crearcontacto(self): nombre = input("escribe tu nombre: ") telefono = input("escribe el teléfono de " + str(nombre) + " : ") correo = input("escribe el correo de " + str(nombre) + " : ") self.lista.append(nombre + "$" + telefono + "$" + correo) def imprimircontacto(self): self.lista.sort() for elemento in self.lista: arreglo = elemento.split('$') print ("Nombre: " + arreglo[0] + "\t Teléfono: " + arreglo[1] + "\t Correo: " + arreglo[2]) print ("*******************************") 23

def buscarcontacto(self): nombre = input("inserta el nombre a buscar: ") Noencotrado = True for elemento in self.lista: arreglo = elemento.split('$') if nombre in arreglo[0]: print ("Nombre: " + arreglo[0] + " Teléfono: " + arreglo[1] + " Correo: " + arreglo[2]) print ("*******************************") Noencotrado = False if Noencotrado == True: print("contacto no encontrado") def eliminarcontacto(self): nombre = input("inserta el nombre a eliminar: ") Noencontrado = True for elemento in self.lista: arreglo = elemento.split('$') if nombre in arreglo[0]: self.lista.remove(elemento) Noencontrado = False if Noencontrado == True: print("contacto no encontrado") archivo = Archivo() archivo.iniciararchivo() archivo.cargaragenda() while True: os.system('cls') print("1.- Escribir contacto") print("2.- Lee contactos") print("3.- Buscar contacto") print("4.- Eliminar contacto") print("5.- salir contacto") try: opcion = int(input("inserte la opción a elegir: ")) except: print("opción no valida") os.system('pause') continue if opcion == 1: archivo.crearcontacto() elif opcion == 2: archivo.imprimircontacto() elif opcion == 3: archivo.buscarcontacto() 24

elif opcion == 4: archivo.eliminarcontacto() elif opcion == 5: archivo.escribirarchivo() break else: print("opción no valida") os.system('pause') Podrás observar que en la carpeta que tienes el proyecto se ha creado un archivo de texto llamada agenda.txt que almacena los datos para que no se pierdan cuando salimos del programa. 25