Skip to content

Commit 9b6e566

Browse files
authored
Merge pull request mouredev#6748 from pwrxman/main
#8 - Python
2 parents 7a99cb2 + 7308fdb commit 9b6e566

File tree

1 file changed

+134
-0
lines changed

1 file changed

+134
-0
lines changed
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
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+
class Auto:
10+
def __init__ (self, marca: str, modelo: str, tipo: str, anio: int, caracteristicas: list):
11+
self.marca = marca
12+
self.modelo = modelo
13+
self.tipo = tipo
14+
self.anio = anio
15+
self.caracteristicas = caracteristicas
16+
17+
def car_info(self):
18+
return f"El auto solicitado es un {self.marca}:{self.modelo}:{self.tipo}:{self.anio} con el siguiente equipo especial {self.caracteristicas}"
19+
20+
def add_carac_especial(self, adicional: str):
21+
self.caracteristicas.append(adicional)
22+
23+
24+
car = Auto("Honda", "Civic", "Sedan", 2024,["Blanco", "Faros Niebla", "Frenos Ventilados"])
25+
print(car.marca)
26+
print(car.car_info())
27+
28+
29+
car.add_carac_especial("Quemacocos")
30+
car.add_carac_especial("Rines Aluminio")
31+
print(car.car_info())
32+
33+
34+
35+
36+
"""
37+
* DIFICULTAD EXTRA (opcional):
38+
* Implementa dos clases que representen las estructuras de Pila y Cola (estudiadas
39+
* en el ejercicio número 7 de la ruta de estudio)
40+
* - Deben poder inicializarse y disponer de operaciones para añadir, eliminar,
41+
* retornar el número de elementos e imprimir todo su contenido.
42+
"""
43+
44+
# LIFO
45+
class Stack:
46+
def __init__(self):
47+
self.stack = []
48+
49+
def push(self, item): # Insertar elemento en la pila
50+
self.stack.append(item)
51+
52+
def pop(self): # Eliminar elemento de la pila
53+
if self.count() == 0:
54+
return None
55+
return self.stack.pop()
56+
57+
def count(self):
58+
return len(self.stack)
59+
60+
def print(self):
61+
for item in reversed(self.stack):
62+
print(item)
63+
64+
# FIFO
65+
66+
class Queue:
67+
def __init__(self):
68+
self.queue = []
69+
70+
def enqueue(self, item):
71+
self.queue.append(item)
72+
73+
def unqueue(self):
74+
if self.count() == 0:
75+
return None
76+
return self.queue.pop(0)
77+
78+
def count(self):
79+
return len(self.queue)
80+
81+
def print(self):
82+
for item in self.queue:
83+
print(item)
84+
85+
86+
87+
88+
pila = Stack()
89+
cola = Queue()
90+
91+
while True:
92+
print("PILAS")
93+
print("\t1 - Agregar elemento en Pila")
94+
print("\t2 - Eliminar elemento de Pila")
95+
print("\t3 - Mostrar Elementos de la Pila\n")
96+
print("\t4 - Contar Elementos de la Pila\n")
97+
98+
print("COLAS")
99+
print("\t5 - Agregar elemento en cola")
100+
print("\t6 - Eliminar elemento de cola")
101+
print("\t7 - Mostrar Elementos de la cola\n")
102+
print("\t8 - Contar Elementos de la cola\n")
103+
print("q - Terminar")
104+
105+
action= input("Que desea hacer? ")
106+
match action:
107+
case '1':
108+
element=input("Cual es el elemento que desea añadir a la Pila? ")
109+
pila.push(element)
110+
# addelem(element, stack)
111+
case '2':
112+
pila.pop()
113+
# pop(stack)
114+
case '3':
115+
pila.print()
116+
case '4':
117+
pila.count()
118+
case '5':
119+
element=input("Cual es el elemento que desea añadir a la Cola? ")
120+
cola.enqueue(element)
121+
case '6':
122+
cola.unqueue()
123+
case '7':
124+
cola.print()
125+
case '8':
126+
cola.count()
127+
128+
case 'q':
129+
print("Hasta la vista...")
130+
break
131+
132+
133+
134+

0 commit comments

Comments
 (0)