Skip to content

Commit 5ae55eb

Browse files
committed
#7 - Python
1 parent b1ede2e commit 5ae55eb

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# PILAS Y COLAS
2+
3+
# PILAS / STACK (LIFO -> Last Input First Output)
4+
5+
stack = ["pelota roja", "pelota azul"]
6+
print(stack)
7+
8+
9+
# Añadir un nuevo elemento a la pila
10+
stack.append("pelota verde")
11+
print(stack)
12+
13+
# Acceder al último elemento, que es el primero en salir y eliminarlo
14+
print(stack[-1])
15+
del stack[-1]
16+
print(stack)
17+
18+
# Hacemos lo mismo con el método pop de python
19+
stack.append("pelota verde")
20+
print(stack)
21+
stack.pop()
22+
print(stack)
23+
24+
# COLAS /QUEUE (FIFO -> First Input First Output)
25+
26+
queue = ["pelota roja", "pelota azul", "pelota verde"]
27+
28+
# Acceder al primer elemento, que es el primero en salir y eliminarlo
29+
print(queue[0])
30+
del queue[0]
31+
print(queue)
32+
queue.insert(0,"pelota roja")
33+
34+
# Hacemos lo mismo con el método pop de python
35+
print(queue)
36+
print(queue.pop(0))
37+
print(queue)
38+
39+
40+
# EJERCICIO EXTRA
41+
"""
42+
- Utilizando la implementación de pila y cadenas de texto, simula el mecanismo adelante/atrás
43+
* de un navegador web. Crea un programa en el que puedas navegar a una página o indicarle
44+
* que te quieres desplazar adelante o atrás, mostrando en cada caso el nombre de la web.
45+
* Las palabras "adelante", "atrás" desencadenan esta acción, el resto se interpreta como
46+
* el nombre de una nueva web.
47+
"""
48+
page_history = ["www.elmundo.es", "elpais.es", "www.abc.es"]
49+
50+
def menu():
51+
52+
position = 0
53+
while True:
54+
user_option = input("Introduzca una opción: 'atras', 'adelante' o diga salir. Cualquier otra opción se añadirá como sitio web ")
55+
if user_option == "adelante":
56+
print("Ha elegido adelante")
57+
position += 1
58+
if position > len(page_history) - 1:
59+
"No hay más páginas que mostrar"
60+
print(f"Estás en la página: {page_history[-1]}")
61+
else:
62+
print(page_history[position])
63+
elif user_option == "atras":
64+
print("Ha elegido atrás")
65+
position -= 1
66+
if position < 0:
67+
print("Estás en la página de inicio")
68+
print(f"Estás en la página: {page_history[0]}")
69+
else:
70+
print(page_history[position])
71+
elif user_option == "salir":
72+
print("Ha salido exitosamente del programa")
73+
break
74+
else:
75+
print(f"se añadirá la siguiente web: {user_option} ")
76+
page_history.append(user_option)
77+
78+
#menu()
79+
80+
# SEGUNDO EJERCICIO
81+
82+
"""- Utilizando la implementación de cola y cadenas de texto, simula el mecanismo de una
83+
* impresora compartida que recibe documentos y los imprime cuando así se le indica.
84+
* La palabra "imprimir" imprime un elemento de la cola, el resto de palabras se
85+
* interpretan como nombres de documentos."""
86+
87+
88+
def printer():
89+
print_queue = []
90+
while True:
91+
option = input("Introduce una opción: imprimir o salir ")
92+
if option == "imprimir":
93+
if len(print_queue) == 0:
94+
print("No hay documentos en la cola de impresión")
95+
else:
96+
print(f"Imprimiendo... {print_queue.pop(0)} ")
97+
print(f"Documentos en la impresora: {print_queue}")
98+
elif option == "salir":
99+
print("Has salido exitosamente del programa")
100+
break
101+
else:
102+
print("Documento añadido a la cola de impresión")
103+
print_queue.append(option)
104+
print(f"Documentos en la impresora: {print_queue}")
105+
106+
printer()

0 commit comments

Comments
 (0)