Skip to content

Commit 1d27c27

Browse files
committed
mouredev#8 - Python
1 parent b44f489 commit 1d27c27

File tree

1 file changed

+146
-0
lines changed

1 file changed

+146
-0
lines changed
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
'''
2+
* EJERCICIO:
3+
* Explora el concepto de clase y crea un ejemplo que implemente un inicializador,
4+
atributos y una función que los imprima (teniendo en cuenta las posibilidades
5+
de tu lenguaje).
6+
* Una vez implementada, créala, establece sus parámetros, modifícalos e imprímelos
7+
utilizando su función.
8+
9+
* DIFICULTAD EXTRA (opcional):
10+
* Implementa dos clases que representen las estructuras de Pila y Cola (estudiadas
11+
en el ejercicio número 7 de la ruta de estudio)
12+
- Deben poder inicializarse y disponer de operaciones para añadir, eliminar,
13+
retornar el número de elementos e imprimir todo su contenido.
14+
15+
'''
16+
17+
# 1. Crea la clase y el inicializador
18+
19+
# Voy a crear una clase como ejemplo que tenga como atributos el nombre y la edad
20+
class Pet:
21+
# Atributo opcional que no es requerido al crear una instancia pero que podemos usar
22+
specie: str = None
23+
24+
def __init__(self, name: str, age: int):
25+
self.name = name # Guardamos el nombre como atributo
26+
self.age = age # Guardamos la edad como atributo
27+
28+
# 2. Agrega una funcion para mostrar los datos
29+
30+
# Creo un metodo para la clase mascota que imprima tanto el nombre como la edad
31+
def show_info(self):
32+
print(f"Nombre: {self.name}| Specie: {self.specie} | Edad: {self.age}")
33+
34+
# 3. Usa la clase(crea una mascota)
35+
my_pet = Pet("Fawler", 17)
36+
37+
# 4. Llama a la funcion para mostrar la informacion
38+
my_pet.show_info()
39+
40+
# Podemos agregar un atributo opcional a cualquier instancia y utilizarlo cuando se requiera
41+
my_pet.specie = "Ave"
42+
my_pet.show_info()
43+
44+
# 5. Modifica los atributos despues de crear el objeto
45+
my_pet.name = "Zerk"
46+
my_pet.age = 12
47+
my_pet.specie = "Camaleon"
48+
my_pet.show_info()
49+
50+
'''
51+
Extra
52+
'''
53+
54+
# 1. Implementacion de clases usando la estructura de datos pila
55+
56+
class Stack:
57+
def __init__(self):
58+
self.stack = []
59+
60+
def push(self, item):
61+
self.stack.append(item)
62+
print(f"Agregando {item} a la pila")
63+
64+
def pop(self):
65+
if len(self.stack) == 0:
66+
print("La pila esta vacia")
67+
else:
68+
removido = self.stack.pop()
69+
print(f"\nDesapilando {removido} de la pila")
70+
71+
def count(self):
72+
longitud = len(self.stack)
73+
print(f"\nLa pila tiene {longitud} elementos")
74+
75+
def print(self):
76+
if len(self.stack) == 0:
77+
print("La pila esta vacia")
78+
else:
79+
print("\nImprimiendo la pila:")
80+
for elemento in reversed(self.stack):
81+
print(elemento)
82+
83+
my_stack = Stack()
84+
85+
my_stack.push(1)
86+
my_stack.push(2)
87+
my_stack.push(3)
88+
my_stack.push(4)
89+
90+
my_stack.print()
91+
92+
my_stack.count()
93+
94+
my_stack.pop()
95+
96+
my_stack.print()
97+
98+
my_stack.count()
99+
100+
101+
# 2. Implementacion de clases usando la estructura de datos cola
102+
103+
class Queue:
104+
def __init__(self):
105+
self.queue = []
106+
107+
def enqueue(self, item):
108+
self.queue.append(item)
109+
print(f"Agregando {item} a la cola")
110+
111+
def dequeue(self):
112+
if len(self.queue) == 0:
113+
print("La cola esta vacia")
114+
else:
115+
removido = self.queue.pop(0)
116+
print(f"\nEl elemento {removido} a salido de la cola")
117+
118+
def count(self):
119+
if len(self.queue) == 0:
120+
print("La cola esta vacia")
121+
else:
122+
print(f"La cola tiene {len(self.queue)} elementos")
123+
124+
def print(self):
125+
if len(self.queue) == 0:
126+
print("La cola esta vacia")
127+
else:
128+
print("\nImprimiendo la cola:")
129+
for elementos in self.queue:
130+
print(elementos)
131+
132+
my_queue = Queue()
133+
134+
my_queue.enqueue(1)
135+
my_queue.enqueue(2)
136+
my_queue.enqueue(3)
137+
my_queue.enqueue(4)
138+
139+
my_queue.print()
140+
141+
my_queue.count()
142+
143+
my_queue.dequeue()
144+
145+
my_queue.print()
146+

0 commit comments

Comments
 (0)