Skip to content

Commit f121dac

Browse files
committed
feat: #19-Python
Reto #19-Python realizado por mrodara
1 parent 57ef59f commit f121dac

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
### ENUMERACIONES
2+
'''
3+
Las enumeraciones (enums) son un conjunto de nombres simbólicos (miembros) asignados a valores únicos.
4+
En Python, el módulo estándar enum permite trabajar con enumeraciones de manera sencilla,
5+
facilitando la organización y manipulación de conjuntos de valores relacionados.
6+
'''
7+
from enum import Enum
8+
9+
class Week(Enum):
10+
LUNES = 1
11+
MARTES = 2
12+
MIERCOLES = 3
13+
JUEVES = 4
14+
VIERNES = 5
15+
SABADO = 6
16+
DOMINGO = 7
17+
18+
print(Week.LUNES.name)
19+
print(Week.LUNES.value)
20+
21+
def get_week_day(number: int = 1):
22+
if number < 1 or number > 7:
23+
print("Error!!!")
24+
return None
25+
26+
return Week(number).name
27+
28+
print(get_week_day(2))
29+
print(get_week_day(4))
30+
print(get_week_day(7))
31+
32+
### EJERCICIO EXTRA
33+
34+
class Estado(Enum):
35+
PENDIENTE = 1
36+
ENVIADO = 2
37+
ENTREGADO = 3
38+
CANCELADO = 4
39+
40+
class Pedido:
41+
def __init__(self, id_pedido, estado):
42+
self.__id_pedido = id_pedido
43+
self.__estado = estado
44+
45+
@property
46+
def id_pedido(self):
47+
return self.__id_pedido
48+
49+
@id_pedido.setter
50+
def id_pedido(self, id: int):
51+
self.__id_pedido = id
52+
53+
@property
54+
def estado(self):
55+
return self.__estado
56+
57+
def cambiar_estado(self, estado: Estado):
58+
if self.__estado.value == 1 and estado.value == 3:
59+
print("Error: El estado no puede cambiar de pendiente a entregado hasta que no se haya enviado")
60+
elif self.__estado.value == 3 and estado.value == 4:
61+
print("Error: El estado no puede cambiar de entregado a cancelado")
62+
else:
63+
print(f"Cambiando el pedido {self.__id_pedido} de {self.__estado.name} a {estado.name}")
64+
self.__estado = estado
65+
66+
p1 = Pedido(1, Estado.PENDIENTE)
67+
p2 = Pedido(2, Estado.ENVIADO)
68+
p3 = Pedido(3, Estado.ENTREGADO)
69+
70+
print(f"Id: {p1.id_pedido}, Estado: {p1.estado.name}")
71+
print(f"Id: {p2.id_pedido}, Estado: {p2.estado.name}")
72+
print(f"Id: {p3.id_pedido}, Estado: {p3.estado.name}")
73+
74+
# P1 pasa a estado enviado
75+
p1.cambiar_estado(Estado.ENVIADO)
76+
p3.cambiar_estado(Estado.CANCELADO) # Este cambio no se puede realizar
77+
print(p3.estado.name)
78+
79+
### FIN EJERCICIO EXTRA
80+
81+
82+
### FIN ENUMERACIONES

0 commit comments

Comments
 (0)