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