Skip to content

Commit b14773c

Browse files
committed
#19 - Python
1 parent 1391350 commit b14773c

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
from enum import Enum
2+
3+
class Calendar(Enum):
4+
lunes = 1
5+
martes = 2
6+
miercoles = 3
7+
jueves = 4
8+
viernes = 5
9+
sabado = 6
10+
domingo = 7
11+
12+
def get_day_by_number(num):
13+
return Calendar(num)
14+
15+
day = Calendar.get_day_by_number(2)
16+
print(day.name)
17+
18+
# ---- DIFICULTAD EXTRA ----
19+
20+
class Estados(Enum):
21+
PENDIENTE = 0
22+
ENVIADO = 1
23+
ENTREGADO = 2
24+
CANCELADO = -1
25+
26+
class Pedidos:
27+
def __str__(self):
28+
return f"Pedidos id={self.id}, estado={self.estado}"
29+
30+
def __init__(self, id):
31+
self.id = id
32+
self.estado = Estados(0)
33+
self.anterior_estado = None
34+
35+
def enviar(self):
36+
if not self.estado == Estados.PENDIENTE:
37+
raise Exception(f"El pedido no se puede enviar con estado: {self.estado}")
38+
39+
self.estado = Estados(1)
40+
self.anterior_estado = Estados(0)
41+
42+
43+
def cancelar(self):
44+
if self.estado == Estados.ENTREGADO:
45+
raise Exception(f"El pedido no se puede cancelar con estado: {self.estado}")
46+
47+
self.estado = Estados(-1)
48+
49+
def entregado(self):
50+
if not self.estado == Estados.ENVIADO:
51+
raise Exception(f"El pedido no se puede entregar con estado: {self.estado}")
52+
53+
self.estado = Estados(2)
54+
self.anterior_estado = Estados(1)
55+
56+
pedido1 = Pedidos(1)
57+
print(pedido1)
58+
pedido1.cancelar()
59+
print(pedido1)
60+
print()
61+
62+
pedido2 = Pedidos(2)
63+
print(pedido2)
64+
pedido2.enviar()
65+
print(pedido2)
66+
pedido2.entregado()
67+
print(pedido2)
68+
try:
69+
pedido2.cancelar()
70+
except:
71+
pass
72+
print(pedido2)
73+
print()
74+
75+
pedido3 = Pedidos(3)
76+
print(pedido3)
77+
pedido3.enviar()
78+
print(pedido3)
79+
pedido3.cancelar()
80+
print(pedido3)
81+
try:
82+
pedido3.entregado()
83+
except:
84+
pass
85+
print(pedido3)

0 commit comments

Comments
 (0)