Skip to content

Commit bd65d7e

Browse files
authored
Merge pull request #8981 from Aleran07/ejercicio-7
#7 - Python
2 parents a9fe04c + c71e6e9 commit bd65d7e

File tree

1 file changed

+149
-0
lines changed

1 file changed

+149
-0
lines changed
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
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"\nEstas en la pagina {lista_webs[posicion]}\n")
44+
45+
def opcion_1():
46+
nonlocal posicion
47+
posicion += 1
48+
try:
49+
print(f"\nAvanzate 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"\nRetrocediste a la pagina {lista_webs[posicion]}")
59+
pantalla()
60+
61+
def opcion_3():
62+
nonlocal posicion
63+
nueva_web = input("\nEscribe el nombre de la web: ")
64+
lista_webs.append(nueva_web)
65+
66+
posicion = len(lista_webs) - 1
67+
print(f"\nAhora 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("\nElige la accion deseas realizar para cambiar de pagina:\
85+
\n1. Adelante\n" \
86+
"2. Atras\n3. Nombre de la Pagina que deseas digirirte\n4. 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("\nBoludo es del 1 al 4\n")
94+
except ValueError:
95+
print("\nSolo 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"\nImprimiendo archivo: {lista_webs[posicion]}")
114+
lista_webs.pop(0)
115+
pantalla()
116+
117+
def opcion_2():
118+
print("\nSaliendo del programa...\n")
119+
exit()
120+
121+
def opcion_3(word):
122+
lista_webs.append(word)
123+
print(f"\nArchivo 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("\nEscribe la palabra 'imprimir' si deseas imprimir de lo contrario se tomara como documento: \nEscribe 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("\nSolo se permite texto\n")
146+
147+
pantalla()
148+
149+
impresora()

0 commit comments

Comments
 (0)