Skip to content

Commit b502851

Browse files
authored
Merge pull request mouredev#7518 from jorgeadamowicz/main
#8-Python
2 parents d47f701 + 8c77f4c commit b502851

File tree

1 file changed

+146
-0
lines changed

1 file changed

+146
-0
lines changed
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+
### EJERCICIO: ###
17+
class Persona:
18+
#metodo inicializador
19+
def __init__(self, nombre, edad, actividad):
20+
self.nombre = nombre
21+
self.edad = edad
22+
self.actividad = actividad
23+
24+
#metodo para imprimir atributos de clase a traves del metodo __str__
25+
def __str__(self):
26+
return f"Nombre: {self.nombre} \nEdad: {self.edad} \nActividad: {self.actividad} \n"
27+
28+
#metodo que muestra los atributos de clase
29+
def mostrar_atributos(self):
30+
print(f"Nombre: {self.nombre}\nEdad: {self.edad} \nActividad: {self.actividad}\n")
31+
32+
#instancia de clases
33+
persona1 = Persona("juank", 25 , "Programador")
34+
35+
#llamo al método mostrar_atributos
36+
persona1.mostrar_atributos()
37+
38+
#modifico atributo de clase
39+
persona1.nombre = "Juan Gabriel"
40+
41+
#llamo al método __str__
42+
print(persona1)
43+
44+
### DIFICULTAD EXTRA: ###
45+
46+
## Pila (LIFO)##
47+
class Pila:
48+
#metodo inicializador
49+
def __init__(self):
50+
self.pila = []
51+
52+
#metodo 'Push' que añade un elemento a la pila
53+
def añadir_elemento(self, elemento):
54+
self.pila.append(elemento)
55+
56+
#metodo 'Pop' que elimina un elemento de la pila
57+
def eliminar_elemento(self):
58+
#verifica que la pila no este vacia
59+
if self.contar_elementos() == 0:
60+
#retorna None si la pila esta vacia
61+
return None
62+
return self.pila.pop()
63+
64+
65+
#metodo 'Count' que retorna el numero de elementos de la pila
66+
def contar_elementos(self):
67+
return len(self.pila)
68+
69+
#metodo 'Print' que imprime el contenido de la pila
70+
def imprimir_elementos(self):
71+
#recorre la lista de manera inversa
72+
for elemento in reversed(self.pila): #reverse() invierte los valores de la secuencia dada
73+
print(elemento)
74+
75+
#creo una instacia de la clase Pila
76+
mi_pila = Pila()
77+
#añado elementos a la pila
78+
mi_pila.añadir_elemento("elemento 1")
79+
mi_pila.añadir_elemento("elemento 2")
80+
mi_pila.añadir_elemento("elemento 3")
81+
mi_pila.añadir_elemento("elemento 4")
82+
#muestro la lista de elementos
83+
mi_pila.imprimir_elementos()
84+
#muestro la cantidad de elementos
85+
print(f"la cantidad de elementos es: {mi_pila.contar_elementos()}\n")
86+
87+
#elimino un elemento de la pila
88+
mi_pila.eliminar_elemento()
89+
#muestro la lista de elementos
90+
mi_pila.imprimir_elementos()
91+
#muestro la cantidad de elementos
92+
print(f"la cantidad de elementos es: {mi_pila.contar_elementos()}\n")
93+
94+
95+
## Cola (FIFO)##
96+
97+
class Cola:
98+
#metodo inicializador
99+
def __init__(self):
100+
self.cola = []
101+
102+
#metodo 'enqueue' que añade un elemento a la cola
103+
def añadir_elemento(self, elemento):
104+
self.cola.append(elemento)
105+
106+
#metodo 'dequeue' que elimina un elemento de la cola
107+
def eliminar_elemento(self):
108+
#verifica que la cola no este vacia
109+
if self.contar_elementos() == 0:
110+
#retorna None si la cola esta vacia
111+
return None
112+
#se elimina el primer elemento de la cola indicando el indice '0'
113+
return self.cola.pop(0)
114+
115+
#metodo 'Count' que retorna el numero de elemntos de la cola
116+
def contar_elementos(self):
117+
return len(self.cola)
118+
119+
#metodo 'Print' que imprime el contenido de la cola
120+
def imprimir_elementos(self):
121+
for elemntos in self.cola:
122+
print(elemntos)
123+
124+
#creo una instancia de la clase Cola
125+
mi_cola = Cola()
126+
#añado elementos a la cola
127+
mi_cola.añadir_elemento("elemento 1")
128+
mi_cola.añadir_elemento("elemento 2")
129+
mi_cola.añadir_elemento("elemento 3")
130+
mi_cola.añadir_elemento("elemento 4")
131+
132+
#muestro la lista de elementos
133+
mi_cola.imprimir_elementos()
134+
#muestro la cantidad de elementos
135+
print(f"la cantidad de elementos es: {mi_cola.contar_elementos()}\n")
136+
137+
#elimino un elemento de la pila
138+
mi_cola.eliminar_elemento()
139+
#muestro la lista de elementos
140+
mi_cola.imprimir_elementos()
141+
#muestro la cantidad de elementos
142+
print(f"la cantidad de elementos es: {mi_cola.contar_elementos()}\n")
143+
144+
145+
146+

0 commit comments

Comments
 (0)