forked from mouredev/roadmap-retos-programacion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMirandaYuber.py
133 lines (95 loc) · 2.87 KB
/
MirandaYuber.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
"""
Pilas y colas
"""
# Pila/Stack (LIFO/Ultimo en entrar, primero en salir)
items_pila = []
def apilar(item):
items_pila.append(item)
def desapilar():
if len(items_pila) > 0:
items_pila.pop()
else:
print('La pila esta vacia.')
def pila_vacia():
return len(items_pila) == 0
def tamaño_pila():
return len(items_pila)
apilar(1)
apilar(2)
apilar(3)
print(f'Items de la pila al apilar: {items_pila}')
desapilar()
print(f'Items de la pila al desapilar: {items_pila}')
print(f'La pila esta vacia: {pila_vacia()}')
print(f'Tamaño de la pila: {tamaño_pila()}')
print()
# Cola/Queue (FIFO/Primero en entrar, primero en salir)
items_cola = []
def agregar_a_la_cola(item):
items_cola.insert(0, item)
def quitar_de_la_cola():
if len(items_cola) > 0:
items_cola.pop()
else:
print('La cola esta vacia.')
def cola_vacia():
return len(items_cola) == 0
def tamaño_cola():
return len(items_cola)
agregar_a_la_cola(1)
agregar_a_la_cola(2)
agregar_a_la_cola(3)
print(f'Items de la cola despues de agregar a la cola: : {items_cola}')
quitar_de_la_cola()
print(f'Items de la cola despues de quitar de la cola: : {items_cola}')
print(f'Items de la cola: : {items_cola}')
print(f'La cola esta vacia: {cola_vacia()}')
print(f'Tamaño de la cola: : {tamaño_cola()}')
print()
"""
EXTRA
"""
def navegador():
paginas = []
ultima_pagina = ''
while True:
accion = input(
'Ingrese una pagina o interactue con las palabras atras/adelante/salir: '
).lower()
match accion:
case 'atras':
if len(paginas) > 0:
ultima_pagina = paginas.pop()
case 'adelante':
if ultima_pagina != '':
paginas.append(ultima_pagina)
case 'salir':
break
case _:
paginas.append(accion)
if len(paginas) > 0:
print(f'Esta en la página: {paginas[-1]}')
else:
print('Esta en la paina de inicio.')
navegador()
def impresora():
documentos = []
while True:
accion = input('Ingrese un documento o interactue con las palabras imprimir/listar/salir: ')
match accion:
case 'imprimir':
if len(documentos) > 0:
documento_impreso = documentos.pop()
print(f'Se ha impreso el documento: {documento_impreso}')
case 'salir':
break
case 'listar':
if len(documentos) > 0:
for documento in documentos:
print(documento)
case _:
documentos.insert(0, accion)
print(f'Ha agregado a la cola de impresión el documento: {accion}')
if len(documentos) == 0:
print('No hay documentos en cola de impresión.')
impresora()