Skip to content

Commit fb407fa

Browse files
authored
Merge pull request mouredev#7435 from JacMac45/JacMac45/issue7011
#7-python
2 parents df984a9 + 54aa531 commit fb407fa

File tree

2 files changed

+105
-1
lines changed

2 files changed

+105
-1
lines changed

Roadmap/06 - RECURSIVIDAD/python/JacMac45.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,4 @@ def fibonacci(number:int) -> int:
3535
else:
3636
return fibonacci(number - 1) + fibonacci(number - 2)
3737

38-
print (fibonacci(10))
38+
print (fibonacci(10)) # 55 sera el resultado
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# Pilas y colas
2+
3+
# Pila/Stack (LIFO/Ultimo en entrar, primero en salir)
4+
5+
stack = []
6+
7+
# Añadir elementos a la pila (push)
8+
stack.append(1)
9+
stack.append(2)
10+
stack.append(3)
11+
12+
print(f'Items de la pila al apilar: {stack}')
13+
14+
# Eliminar el ultimo elemento de la pila
15+
stack_item = stack[len(stack) - 1]
16+
del stack[len(stack) - 1]
17+
print(stack_item)
18+
print(stack)
19+
20+
# Utilizamos el método pop para quitar el ultimo elemento que haya entrado " len()-1 ". Mas recomendable y eficiente
21+
print(stack.pop())
22+
print(stack)
23+
24+
25+
# Cola/Queue (FIFO/Primero en entrar, primero en salir)
26+
27+
queue = []
28+
29+
# Insertar elementos a la cola (enqueue)
30+
queue.append(1)
31+
queue.append(2)
32+
queue.append(3)
33+
34+
print(f'Items de la cola al apilar: {queue}')
35+
36+
# Eliminar el primer elemento de la cola
37+
queue_item = queue[0]
38+
del queue[0]
39+
print(queue_item)
40+
print(queue)
41+
42+
# Utilizamos el método pop para quitar el primer elemento que haya entrado " 0 ". Mas recomendable y eficiente
43+
print(queue.pop(0))
44+
print(queue)
45+
46+
# DIFICULTAD EXTRA
47+
48+
# Navegador web con implementación de pila:
49+
50+
def web_navigation():
51+
navigator = []
52+
print("Panel de inicio de navegación")
53+
54+
while True:
55+
action = input("Introduce una url o elige una de las opciones: adelante/atrás/salir: ").lower()
56+
if action == "salir":
57+
print("Saliendo del navegador web.")
58+
break
59+
elif action == "adelante":
60+
if len(navigator) > 0:
61+
print(f"Has navegado a la web: {navigator[len(navigator) - 1]}")
62+
navigator.pop()
63+
elif action == "atrás":
64+
if len(navigator) > 0:
65+
print(f"Has navegado a la web: {navigator[len(navigator) - 1]}")
66+
navigator.pop()
67+
else:
68+
navigator.append(action)
69+
70+
if len(navigator) > 0:
71+
print(f"Pagina web actual: {navigator[-1]}")
72+
else:
73+
print("Panel de inicio de navegación")
74+
75+
76+
web_navigation()
77+
78+
# DIFICULTAD EXTRA 2
79+
80+
# Impresora con implementación de cola:
81+
82+
def shared_printer():
83+
queue = []
84+
while True:
85+
86+
action = input("Introduce el documento que deseas añadir o selecciona 'imprimir' para imprimir o 'salir' \n").lower()
87+
88+
if action == "salir":
89+
break
90+
elif action == "imprimir":
91+
if len(queue) > 0:
92+
print(f"Imprimiendo el documento {queue.pop(0)}")
93+
else:
94+
print("No hay documentos en la cola de impresión.")
95+
else:
96+
queue.append(action)
97+
98+
99+
if len(queue) > 0: print(f"Cola de impresión: {queue}")
100+
else: print("No hay documentos en la cola de impresión.")
101+
102+
103+
shared_printer()
104+

0 commit comments

Comments
 (0)