1+ # 07
2+
3+ # stacks - LIFO
4+ pila = []
5+ pila .append (1 )
6+ pila .append (2 )
7+ pila .append (3 )
8+ print (pila ) # [1, 2, 3]
9+
10+ pila .pop () # saca el 3
11+ print (pila ) # [1, 2]
12+
13+ pila .pop () # saca el 2
14+ print (pila ) # [1]
15+
16+ pila .pop () # saca el 1
17+ print (pila ) # []
18+
19+ # queue - FIFO
20+
21+ cola = []
22+ cola .append ('A' )
23+ cola .append ('B' )
24+ cola .append ('C' )
25+ print (cola ) # ['A', 'B', 'C']
26+
27+ # Quitar del principio
28+ primero = cola .pop (0 )
29+ print (primero ) # 'A'
30+ print (cola ) # ['B', 'C']
31+
32+ """- Utilizando la implementación de pila y cadenas de texto, simula el mecanismo adelante/atrás
33+ * de un navegador web. Crea un programa en el que puedas navegar a una página o indicarle
34+ * que te quieres desplazar adelante o atrás, mostrando en cada caso el nombre de la web.
35+ * Las palabras "adelante", "atrás" desencadenan esta acción, el resto se interpreta como
36+ * el nombre de una nueva web."""
37+
38+ def navegador ():
39+ lista_webs = ["Google" , "Youtube" , "Facebook" , "Pinterest" ]
40+ posicion = 0
41+ opciones = [1 , 2 , 3 , 4 ]
42+ # Mensaje de inicio
43+ print (f"\n Estas en la pagina { lista_webs [posicion ]} \n " )
44+
45+ def opcion_1 ():
46+ nonlocal posicion
47+ posicion += 1
48+ try :
49+ print (f"\n Avanzate a la pagina { lista_webs [posicion ]} " )
50+ pantalla ()
51+ except IndexError :
52+ print ("Índice fuera del rango, no hay mas elementos adelante." )
53+ pantalla ()
54+
55+ def opcion_2 ():
56+ nonlocal posicion
57+ posicion -= 1
58+ print (f"\n Retrocediste a la pagina { lista_webs [posicion ]} " )
59+ pantalla ()
60+
61+ def opcion_3 ():
62+ nonlocal posicion
63+ nueva_web = input ("\n Escribe el nombre de la web: " )
64+ lista_webs .append (nueva_web )
65+
66+ posicion = len (lista_webs ) - 1
67+ print (f"\n Ahora te encuentras en la pagina { lista_webs [posicion ]} " )
68+
69+ pantalla ()
70+
71+ def opcion_4 ():
72+ print ("Saliendo del programa..." )
73+ exit ()
74+
75+ acciones = {
76+ 1 : opcion_1 ,
77+ 2 : opcion_2 ,
78+ 3 : opcion_3 ,
79+ 4 : opcion_4 ,
80+ }
81+ def pantalla ():
82+ while True :
83+ try :
84+ x = int (input ("\n Elige la accion deseas realizar para cambiar de pagina:\
85+ \n 1. Adelante\n " \
86+ "2. Atras\n 3. Nombre de la Pagina que deseas digirirte\n 4. Salir\n " \
87+ "Indique una opción: " ))
88+ if x in opciones :
89+ accion = acciones .get (x , lambda : print ("Opción no válida" ))
90+ accion ()
91+ break
92+ else :
93+ print ("\n Boludo es del 1 al 4\n " )
94+ except ValueError :
95+ print ("\n Solo se permiten numeros\n " )
96+
97+ pantalla ()
98+
99+ navegador ()
100+
101+ """* - Utilizando la implementación de cola y cadenas de texto, simula el mecanismo de una
102+ * impresora compartida que recibe documentos y los imprime cuando así se le indica.
103+ * La palabra "imprimir" imprime un elemento de la cola, el resto de palabras se
104+ * interpretan como nombres de documentos."""
105+
106+ def impresora ():
107+ lista_webs = []
108+ posicion = 0
109+ opciones = ["imprimir" , "salir" ]
110+
111+ def opcion_1 ():
112+ nonlocal posicion
113+ print (f"\n Imprimiendo archivo: { lista_webs [posicion ]} " )
114+ lista_webs .pop (0 )
115+ pantalla ()
116+
117+ def opcion_2 ():
118+ print ("\n Saliendo del programa...\n " )
119+ exit ()
120+
121+ def opcion_3 (word ):
122+ lista_webs .append (word )
123+ print (f"\n Archivo agregado a la cola { word } " )
124+ pantalla ()
125+
126+ acciones = {
127+ "imprimir" : opcion_1 ,
128+ "salir" : opcion_2 ,
129+ "document" : opcion_3 ,
130+ }
131+ def pantalla ():
132+ while True :
133+ try :
134+ x = input ("\n Escribe la palabra 'imprimir' si deseas imprimir de lo contrario se tomara como documento: \n Escribe salir para terminar el programa: " )
135+ minimizar = x .lower ()
136+ if minimizar in opciones :
137+ accion = acciones .get (minimizar , lambda : print ("Opción no válida 1" ))
138+ accion ()
139+ break
140+ else :
141+ accion = acciones .get ("document" , lambda : print ("Opción no válida" ))
142+ accion (minimizar )
143+ break
144+ except ValueError :
145+ print ("\n Solo se permite texto\n " )
146+
147+ pantalla ()
148+
149+ impresora ()
0 commit comments