1
+ """ /*
2
+ * EJERCICIO:
3
+ * Empleando tu lenguaje, explora la definición del tipo de dato
4
+ * que sirva para definir enumeraciones (Enum).
5
+ * Crea un Enum que represente los días de la semana del lunes
6
+ * al domingo, en ese orden. Con ese enumerado, crea una operación
7
+ * que muestre el nombre del día de la semana dependiendo del número entero
8
+ * utilizado (del 1 al 7).
9
+ *
10
+ * DIFICULTAD EXTRA (opcional):
11
+ * Crea un pequeño sistema de gestión del estado de pedidos.
12
+ * Implementa una clase que defina un pedido con las siguientes características:
13
+ * - El pedido tiene un identificador y un estado.
14
+ * - El estado es un Enum con estos valores: PENDIENTE, ENVIADO, ENTREGADO y CANCELADO.
15
+ * - Implementa las funciones que sirvan para modificar el estado:
16
+ * - Pedido enviado
17
+ * - Pedido cancelado
18
+ * - Pedido entregado
19
+ * (Establece una lógica, por ejemplo, no se puede entregar si no se ha enviado, etc...)
20
+ * - Implementa una función para mostrar un texto descriptivo según el estado actual.
21
+ * - Crea diferentes pedidos y muestra cómo se interactúa con ellos.
22
+ */ """
23
+
24
+ from enum import Enum
25
+
26
+ #EJERCICIO
27
+
28
+ class Weekday (Enum ):
29
+ MONDAY = 1
30
+ TUESDAY = 2
31
+ WEDNESDAY = 3
32
+ THURSDAY = 4
33
+ FRIDAY = 5
34
+ SATURDAY = 6
35
+ SUNDAY = 7
36
+
37
+ def get_day (number : int ):
38
+ print (Weekday (number ))
39
+
40
+ get_day (1 )
41
+ get_day (2 )
42
+ get_day (3 )
43
+ get_day (4 )
44
+ get_day (5 )
45
+ get_day (6 )
46
+ get_day (7 )
47
+
48
+ #DIFICULTAD EXTRA
49
+
50
+ class order_status (Enum ):
51
+ Pending = 1
52
+ Shipped = 2
53
+ Delivered = 3
54
+ Cancelled = 4
55
+
56
+ class order ():
57
+
58
+ status = order_status .Pending
59
+
60
+ def __init__ (self , id ):
61
+ self .id = id
62
+
63
+ def ship (self ):
64
+ if self .status == order_status .Pending :
65
+ self .status = order_status .Shipped
66
+ print ("El pedido ya ha sido enviado." )
67
+ else :
68
+ print ("El pedido ya ha sido enviado o cancelado." )
69
+
70
+ def deliver (self ):
71
+ if self .status == order_status .Shipped :
72
+ self .status = order_status .Delivered
73
+ print ("El pedido ya se ha enviado." )
74
+ else :
75
+ print ("El pedido necesita ser enviado antes de entregarse." )
76
+
77
+ def cancel (self ):
78
+ if self .status == order_status .Pending :
79
+ self .status = order_status .Cancelled
80
+ print ("El pedido se ha cancelado." )
81
+ elif self .status == order_status .Shipped :
82
+ print ("El pedido no puede ser cancelado porque ya se ha enviado." )
83
+ elif self .status == order_status .Delivered :
84
+ print ("El pedido no puede ser cancelado porque ya se ha entregado." )
85
+ else :
86
+ print ("El pedido ya ha sido cancelado previamente." )
87
+
88
+ def display_status (self ):
89
+ print (f"El estado del pedido { self .id } es { self .status .name } " )
90
+
91
+ Order1 = order (1 )
92
+ Order1 .display_status ()
93
+ Order1 .deliver ()
94
+ Order1 .display_status ()
95
+ Order1 .ship ()
96
+ Order1 .display_status ()
97
+ Order1 .deliver ()
98
+ Order1 .display_status ()
0 commit comments