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 } \n Edad: { self .edad } \n Actividad: { self .actividad } \n "
27
+
28
+ #metodo que muestra los atributos de clase
29
+ def mostrar_atributos (self ):
30
+ print (f"Nombre: { self .nombre } \n Edad: { self .edad } \n Actividad: { 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