Skip to content

Commit ac20f9e

Browse files
authored
Merge pull request mouredev#3504 from Mauricio-Leyva/main
#19 - python
2 parents f6895b8 + cb77840 commit ac20f9e

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# Ejercicio:
2+
3+
from enum import Enum
4+
5+
class DiaSemana(Enum):
6+
LUNES = 1
7+
MARTES = 2
8+
MIERCOLES = 3
9+
JUEVES = 4
10+
VIERNES = 5
11+
SABADO = 6
12+
DOMINGO = 7
13+
14+
def obtener_dia(numero):
15+
dias = {
16+
1: DiaSemana.LUNES,
17+
2: DiaSemana.MARTES,
18+
3: DiaSemana.MIERCOLES,
19+
4: DiaSemana.JUEVES,
20+
5: DiaSemana.VIERNES,
21+
6: DiaSemana.SABADO,
22+
7: DiaSemana.DOMINGO
23+
}
24+
if numero in dias:
25+
return dias[numero].name
26+
else:
27+
return "Número inválido"
28+
29+
# Ejemplos de uso
30+
print(obtener_dia(1))
31+
print(obtener_dia(5))
32+
print(obtener_dia(8))
33+
34+
35+
# Dificultad extra:
36+
37+
from enum import Enum
38+
39+
class EstadoPedido(Enum):
40+
PENDIENTE = 1
41+
ENVIADO = 2
42+
ENTREGADO = 3
43+
CANCELADO = 4
44+
45+
class Pedido:
46+
def __init__(self, id_pedido):
47+
self.id_pedido = id_pedido
48+
self.estado = EstadoPedido.PENDIENTE
49+
50+
def enviar_pedido(self):
51+
if self.estado == EstadoPedido.PENDIENTE:
52+
self.estado = EstadoPedido.ENVIADO
53+
print(f"El pedido {self.id_pedido} ha sido enviado.")
54+
else:
55+
print(f"No se puede enviar el pedido {self.id_pedido} porque su estado actual es {self.estado.name}.")
56+
57+
def cancelar_pedido(self):
58+
if self.estado == EstadoPedido.PENDIENTE or self.estado == EstadoPedido.ENVIADO:
59+
self.estado = EstadoPedido.CANCELADO
60+
print(f"El pedido {self.id_pedido} ha sido cancelado.")
61+
else:
62+
print(f"No se puede cancelar el pedido {self.id_pedido} porque su estado actual es {self.estado.name}.")
63+
64+
def entregar_pedido(self):
65+
if self.estado == EstadoPedido.ENVIADO:
66+
self.estado = EstadoPedido.ENTREGADO
67+
print(f"El pedido {self.id_pedido} ha sido entregado.")
68+
else:
69+
print(f"No se puede entregar el pedido {self.id_pedido} porque su estado actual es {self.estado.name}.")
70+
71+
def mostrar_estado(self):
72+
print(f"El pedido {self.id_pedido} tiene el estado: {self.estado.name}")
73+
74+
# Ejemplo de uso
75+
pedido1 = Pedido("P001")
76+
pedido1.mostrar_estado()
77+
78+
pedido1.enviar_pedido()
79+
pedido1.mostrar_estado()
80+
81+
pedido1.entregar_pedido()
82+
pedido1.mostrar_estado()
83+
84+
pedido1.cancelar_pedido()
85+
86+
pedido2 = Pedido("P002")
87+
pedido2.cancelar_pedido()
88+
pedido2.mostrar_estado()

0 commit comments

Comments
 (0)