Skip to content

Commit 0d3e9f2

Browse files
committed
#19 - Python
1 parent 5b25a01 commit 0d3e9f2

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
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+
by adra-dev
24+
"""
25+
26+
from enum import Enum
27+
28+
class day_of_week(Enum):
29+
MONDAY = 1
30+
TUESDAY = 2
31+
WEDNESDAY = 3
32+
THURSDAY = 4
33+
FRIDAY = 5
34+
SATURDAY = 6
35+
SUNDAY = 7
36+
37+
38+
def get_day(number:int):
39+
print(day_of_week(number).name)
40+
41+
42+
get_day(1)
43+
get_day(5)
44+
45+
46+
"""
47+
Extra
48+
"""
49+
50+
51+
class OrderStatus(Enum):
52+
PENDING = 1
53+
SHIPPED = 2
54+
DELIVERED = 3
55+
CANCELED = 4
56+
57+
58+
class Order:
59+
60+
status = OrderStatus.PENDING
61+
62+
def __init__(self, id) -> None:
63+
self.id = id
64+
65+
def ship(self):
66+
if self.status == OrderStatus.PENDING:
67+
self.status = OrderStatus.SHIPPED
68+
self.display_status()
69+
else:
70+
print("El pedido ya ha sido enviado o cancelado")
71+
72+
def deliver(self):
73+
if self.status == OrderStatus.SHIPPED:
74+
self.status = OrderStatus.DELIVERED
75+
self.display_status()
76+
else:
77+
print("El pedido necesita ser enviado antes de entregarse.")
78+
79+
def cancel(self):
80+
if self.status != OrderStatus.DELIVERED:
81+
self.status = OrderStatus.CANCELLED
82+
self.display_status()
83+
else:
84+
print("El pedido no se puede cancelar ya que ya se ha entregado.")
85+
86+
def display_status(self):
87+
print(f"El estado del pedido {self.id} es {self.status.name}")
88+
89+
90+
order_1 = Order(1)
91+
order_1.display_status()
92+
order_1.deliver()
93+
order_1.ship()
94+
order_1.deliver()
95+
order_1.cancel()

0 commit comments

Comments
 (0)