Skip to content

Commit e7aa8f3

Browse files
authored
Merge pull request mouredev#7594 from davidrguez98/main
#19 - Python
2 parents 907d8d1 + f450faf commit e7aa8f3

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
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

Comments
 (0)