Академический Документы
Профессиональный Документы
Культура Документы
En la primera parte def __ init__(self, tam, color, sabor): definimos las características del
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
3
Herencia múltiple
La hereda la clase Celular, que recibe herencia múltiple ya que recibe la herencia
Electrodomestico.
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.
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
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.
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.
Nombre
Edad
Siguiente Nada
Nada
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.
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’ pasmos los valores de la lista siguiente a la lista actual ‘self.raiz = aux.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().
Guardamos los valores del 1 hasta el 10 en la pila con ayuda del ciclo for y el parámetro range.
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.
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.
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
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():
17
Python POO Estructura de datos Pila II
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