1
+ '''EJERCICIO:
2
+ Explora el concepto de clase y crea un ejemplo que implemente un inicializador,
3
+ atributos y una función que los imprima (teniendo en cuenta las posibilidades
4
+ de tu lenguaje).
5
+ Una vez implementada, créala, establece sus parámetros, modifícalos e imprímelos
6
+ utilizando su función.
7
+ DIFICULTAD EXTRA (opcional):
8
+ Implementa dos clases que representen las estructuras de Pila y Cola (estudiadas
9
+ en el ejercicio número 7 de la ruta de estudio)
10
+ - Deben poder inicializarse y disponer de operaciones para añadir, eliminar,
11
+ retornar el número de elementos e imprimir todo su contenido.'''
12
+
13
+ # Clase/class: es un molde para crear objetos. Un objeto es una instancia de una clase.
14
+ # Atributos/atributes: son las características que tiene un objeto.
15
+ # Métodos/methods: son las acciones que puede realizar un objeto.
16
+ # Constructor/initializer: es un método que se llama cuando se crea un objeto.
17
+ # self: es una referencia al objeto que se está creando.
18
+ # __init__: es el método constructor de una clase.
19
+ # __str__: es el método que se llama cuando se imprime un objeto.
20
+
21
+ class Persona :
22
+ surname : str = None # surname es un atributo de clase
23
+ def __init__ (self , name : str , age : int , habilidades : list ):
24
+ self .name = name
25
+ self .age = age
26
+ self .habilidades = habilidades
27
+
28
+ def __str__ (self ):
29
+ return f'Nombre: { self .name } , Apellido: { self .surname } , Age: { self .age } , Habilidades: { self .habilidades } '
30
+
31
+ mi_persona = Persona ('Santiago' , 24 , ['Python' , 'SQL' ])
32
+ mi_persona .surname = 'Bailleres'
33
+ print (mi_persona )
34
+ mi_persona .age = 25
35
+ print (mi_persona )
36
+
37
+ # EXTRA
38
+ # Clase Pila (Stack) LIFO
39
+ class Pila :
40
+ def __init__ (self ): # self es una referencia al objeto que se está creando
41
+ self .items = []
42
+
43
+ def push (self , item ):
44
+ self .items .append (item )
45
+
46
+ def pop (self ):
47
+ if self .count () == 0 :
48
+ return None
49
+ return self .items .pop ()
50
+
51
+ def count (self ):
52
+ return len (self .items )
53
+
54
+ def print (self ):
55
+ for item in reversed (self .items ):
56
+ print (item )
57
+
58
+ mi_pila = Pila ()
59
+ mi_pila .push (1 )
60
+ mi_pila .push (2 )
61
+ mi_pila .push (3 )
62
+ print (mi_pila .count ())
63
+ mi_pila .print ()
64
+ mi_pila .pop ()
65
+ print (mi_pila .count ())
66
+ print ('---' )
67
+ print (mi_pila .pop ())
68
+ print (mi_pila .pop ())
69
+ print (mi_pila .pop ())
70
+ print (mi_pila .pop ())
71
+ print (mi_pila .count ())
72
+ print ('---' )
73
+
74
+ # Clase Cola (Queue) FIFO
75
+ class Cola :
76
+ def __init__ (self ):
77
+ self .queue = []
78
+
79
+ def enqueue (self , item ):
80
+ self .queue .append (item )
81
+
82
+ def dequeue (self ):
83
+ if self .count () == 0 :
84
+ return None
85
+ return self .queue .pop (0 )
86
+
87
+ def count (self ):
88
+ return len (self .queue )
89
+
90
+ def print (self ):
91
+ for item in self .queue :
92
+ print (item )
93
+
94
+ mi_cola = Cola ()
95
+ mi_cola .enqueue ('A' )
96
+ mi_cola .enqueue ('B' )
97
+ mi_cola .enqueue ('C' )
98
+ print (mi_cola .count ())
99
+ print ('---' )
100
+ mi_cola .print ()
101
+ mi_cola .dequeue ()
102
+ print (mi_cola .count ())
103
+ print ('---' )
104
+ print (mi_cola .dequeue ())
105
+ print (mi_cola .dequeue ())
106
+ print (mi_cola .dequeue ())
107
+ print (mi_cola .dequeue ())
108
+ print (mi_cola .count ())
0 commit comments