-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclasificador1.py
More file actions
81 lines (64 loc) · 2.86 KB
/
Copy pathclasificador1.py
File metadata and controls
81 lines (64 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import tkinter as tk
from tkinter import messagebox
def clasificar_residuo(residuo):
residuo = residuo.lower().strip()
residuos_info = {
"aprovechable": {
"residuos": ["plástico", "plastico", "cartón", "carton", "vidrio", "papel", "metales", "metal"],
"color": "blanco"
},
"no aprovechable": {
"residuos": ["papel higiénico", "servilletas", "servilleta", "cartones contaminados", "papeles metalizados"],
"color": "negro"
},
"peligroso": {
"residuos": ["grasa", "grasas", "aceite", "aceites", "combustible", "combustibles"],
"color": "rojo"
},
"electrónico": {
"residuos": ["batería", "baterías", "celular", "computadora", "cargador", "electrodoméstico"],
"color": "gris"
},
"especial reciclaje": {
"residuos": ["pilas", "bombillo", "toner", "medicamentos vencidos", "jeringas"],
"color": "naranja"
}
}
for clasificacion, info in residuos_info.items():
for r in info["residuos"]:
if r in residuo:
return f"El residuo '{residuo}' es de tipo '{clasificacion}'. Debe depositarse en el contenedor de color '{info['color']}'."
sugerencias = []
for clasificacion, info in residuos_info.items():
for r in info["residuos"]:
if any(word in r for word in residuo.split()):
sugerencias.append(r)
if sugerencias:
sugerencias_str = ", ".join(set(sugerencias))
return f"No se encontró la clasificación exacta de '{residuo}'. ¿Quisiste decir: {sugerencias_str}?"
return f"No se encontró la clasificación de este residuo '{residuo}'. Intenta con otro término o revisa la ortografía."
def mostrar_resultado():
residuo = entrada.get()
resultado = clasificar_residuo(residuo)
messagebox.showinfo("Resultado", resultado)
if __name__ == "__main__":
ventana = tk.Tk()
ventana.title("Clasificador de Residuos")
etiqueta = tk.Label(ventana, text="Ingresa el tipo de residuo:")
etiqueta.pack(pady=5)
entrada = tk.Entry(ventana, width=40)
entrada.pack(pady=5)
boton = tk.Button(ventana, text="Clasificar", command=mostrar_resultado)
boton.pack(pady=10)
ventana.mainloop()
# Pruebas unitarias
if __name__ == "__test__":
def test_clasificar_residuo():
assert "blanco" in clasificar_residuo("plastico")
assert "negro" in clasificar_residuo("servilleta")
assert "rojo" in clasificar_residuo("aceite")
assert "gris" in clasificar_residuo("batería")
assert "naranja" in clasificar_residuo("pilas")
assert "clasificación" in clasificar_residuo("desconocido")
test_clasificar_residuo()
print("Todas las pruebas pasaron.")