Skip to content

Commit 08211b3

Browse files
authored
Merge pull request mouredev#4215 from adra-dev/main
#18 - Python
2 parents e5f58f8 + b91dc67 commit 08211b3

File tree

2 files changed

+161
-0
lines changed

2 files changed

+161
-0
lines changed
+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
"""
2+
EJERCICIO:
3+
Utilizando tu lenguaje crea un conjunto de datos y realiza las
4+
siguientes operaciones (debes utilizar una estructura que las soporte):
5+
6+
- Añade un elemento al final.
7+
- Añade un elemento al principio.
8+
- Añade varios elementos en bloque al final.
9+
- Añade varios elementos en bloque en una posición concreta.
10+
- Elimina un elemento en una posición concreta.
11+
- Actualiza el valor de un elemento en una posición concreta.
12+
- Comprueba si un elemento está en un conjunto.
13+
- Elimina todo el contenido del conjunto.
14+
15+
DIFICULTAD EXTRA (opcional):
16+
Muestra ejemplos de las siguientes operaciones con conjutos:
17+
- Unión.
18+
- Intersección.
19+
- Diferencia.
20+
- Diferencia simétrica.
21+
22+
by adra-dev
23+
"""
24+
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,]
25+
print(f"Estructura inicial: {data}")
26+
27+
data.append(6)
28+
print(f"Añadiendo elemento al final: {data}")
29+
30+
data.insert(0, 0)
31+
print(f"Añadiendo elemento al principio: {data}")
32+
33+
data.extend([7, 8, 9])
34+
print(f"Añadiendo elementos al final: {data}")
35+
36+
data[3:3] = [-1, -2, -3]
37+
print(f"Añadiendo elementos en una posición: {data}")
38+
39+
del data[3]
40+
print(f"Eliminando un elemento concreto: {data}")
41+
42+
data[4] = -1
43+
print(f"Actualizando un elemento concreto: {data}")
44+
45+
print(f"Comprobar si un elemento existe: {-1 in data}")
46+
47+
print(f"Eliminar el contenido: {data.clear()}")
48+
49+
"""
50+
Extra
51+
"""
52+
53+
set1 = {-3, -2, -1, 0, 1, 2, 3}
54+
set2 = {0, 1, 2, 3}
55+
56+
print(f"Union {set1.union(set2)}")
57+
58+
print(f"Intersección: {set1.intersection(set2)}")
59+
print(f"Intersección: {set2.isdisjoint(set1)}")
60+
61+
print(f"Diferencia: {set1.difference(set2)}")
62+
print(f"Diferencia: {set2.difference(set1)}")
63+
64+
print(f"Diferencia: {set2.issubset(set1)}")
65+
66+
print(f"Diferencia simétrica: {set1.symmetric_difference(set2)}")
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)