Skip to content

Commit 84dc925

Browse files
authored
Merge pull request mouredev#7626 from adra-dev/main
mouredev#36 - Python
2 parents 655a6b2 + ff9ab09 commit 84dc925

File tree

1 file changed

+277
-0
lines changed
  • Roadmap/36 - EL SOMBRERO SELECCIONADOR/python

1 file changed

+277
-0
lines changed
Lines changed: 277 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,277 @@
1+
"""
2+
EJERCICIO:
3+
Cada 1 de septiembre el Hogwarts Express parte hacia la escuela de
4+
programación de Hogwarts para magos y brujas del código.
5+
En ella, su famoso sombrero seleccionar ayuda a los programadores a
6+
encontrar su camino. . .
7+
Desarrolla un programa que simule el comportamiento del sombrero.
8+
Requisitos:
9+
1. El sombrero realizará 10 preguntas para determinar la casa del
10+
alumno.
11+
2. Deben existir 4 casas. Por ejemplo: Frontend, Backend, Mobile y
12+
Data. (Puedes elegir las que quieras)
13+
1. Crea un programa que solicite el nombre del alumno y realice 10
14+
preguntas, con cuatro posibles respuestas cada una.
15+
2. Cada respuesta asigna puntos a cada una de las casas (a tu
16+
elección).
17+
3. Una vez finalizado, el sombrero indica el nombre del alumno y a
18+
qué casa pertenecerá (resuelve el posible empate de manera aleatoria,
19+
pero indicándole al alumno que la decisión ha sido complicada).
20+
21+
by adra-dev
22+
"""
23+
24+
import random
25+
26+
27+
houses = {
28+
"Frontend": 0,
29+
"Backend": 0,
30+
"Mobile": 0,
31+
"Data": 0
32+
}
33+
34+
questions = [
35+
{
36+
"question": "¿Qué tipo de proyectos te interesa más desarrollar?",
37+
"answers": [
38+
{
39+
"option": "Aplicaciones móviles nativas para múltiples plataformas.",
40+
"house": "Mobile"
41+
},
42+
{
43+
"option": "Interfaces visualmente atractivas y responsivas.",
44+
"house": "Frontend"
45+
},
46+
{
47+
"option": "Procesamiento y análisis de grandes volúmenes de datos.",
48+
"house": "Data"
49+
},
50+
{
51+
"option": "Sistemas robustos y optimización de rendimiento del servidor.",
52+
"house": "Backend"
53+
}
54+
]
55+
},
56+
{
57+
"question": "¿Qué aspecto del desarrollo disfrutas más?",
58+
"answers": [
59+
{
60+
"option": "Resolver problemas complejos de lógica y escalabilidad.",
61+
"house": "Backend"
62+
},
63+
{
64+
"option": "Analizar datos para tomar decisiones basadas en estadísticas.",
65+
"house": "Data"
66+
},
67+
{
68+
"option": "Crear aplicaciones móviles eficientes y funcionales.",
69+
"house": "Mobile"
70+
},
71+
{
72+
"option": "Trabajar en el diseño y la experiencia de usuario.",
73+
"house": "Frontend"
74+
}
75+
]
76+
},
77+
{
78+
"question": "¿Qué herramienta prefieres usar en tu día a día?",
79+
"answers": [
80+
{
81+
"option": "Kotlin o Swift para desarrollar apps móviles nativas.",
82+
"house": "Mobile"
83+
},
84+
{
85+
"option": "Python o R para análisis de datos.",
86+
"house": "Data"
87+
},
88+
{
89+
"option": "Frameworks como React o Angular.",
90+
"house": "Frontend"
91+
},
92+
{
93+
"option": "Lenguajes como Node.js o Python para la gestión de servidores.",
94+
"house": "Backend"
95+
}
96+
]
97+
},
98+
{
99+
"question": "¿Cómo te ves en un equipo de desarrollo?",
100+
"answers": [
101+
{
102+
"option": "Modelando datos y construyendo dashboards de análisis.",
103+
"house": "Data"
104+
},
105+
{
106+
"option": "Encargado de la lógica del servidor y las APIs.",
107+
"house": "Backend"
108+
},
109+
{
110+
"option": "Desarrollando la interfaz y funcionalidad de una app móvil.",
111+
"house": "Mobile"
112+
},
113+
{
114+
"option": "Diseñando las interacciones y los componentes visuales.",
115+
"house": "Frontend"
116+
}
117+
]
118+
},
119+
{
120+
"question": "¿Qué te motiva más al trabajar en un proyecto?",
121+
"answers": [
122+
{
123+
"option": "Ver cómo el diseño cobra vida en la pantalla.",
124+
"house": "Frontend"
125+
},
126+
{
127+
"option": "Descubrir insights a partir del análisis de datos.",
128+
"house": "Data"
129+
},
130+
{
131+
"option": "Optimizar el rendimiento y escalabilidad del sistema.",
132+
"house": "Backend"
133+
},
134+
{
135+
"option": "Lograr que una aplicación móvil funcione perfectamente en cualquier dispositivo.",
136+
"house": "Mobile"
137+
}
138+
]
139+
},
140+
{
141+
"question": "¿Cuál es tu enfoque al aprender nuevas tecnologías?",
142+
"answers": [
143+
{
144+
"option": "Explorar técnicas avanzadas de análisis de datos y machine learning.",
145+
"house": "Data"
146+
},
147+
{
148+
"option": "Aprender sobre nuevas arquitecturas y lenguajes de servidor.",
149+
"house": "Backend"
150+
},
151+
{
152+
"option": "Probar nuevas plataformas y herramientas para desarrollo móvil.",
153+
"house": "Mobile"
154+
},
155+
{
156+
"option": "Experimentar con nuevas librerías y frameworks de interfaz de usuario.",
157+
"house": "Frontend"
158+
}
159+
]
160+
},
161+
{
162+
"question": "¿Qué tipo de desafíos disfrutas más resolver?",
163+
"answers": [
164+
{
165+
"option": "Solución de problemas de concurrencia y carga en servidores.",
166+
"house": "Backend"
167+
},
168+
{
169+
"option": "Optimización de interfaces para que se vean bien en cualquier dispositivo.",
170+
"house": "Frontend"
171+
},
172+
{
173+
"option": "Análisis de grandes volúmenes de datos para detectar patrones ocultos.",
174+
"house": "Data"},
175+
{
176+
"option": "Creación de experiencias de usuario fluídas en dispositivos móviles.",
177+
"house": "Mobile"
178+
}
179+
]
180+
},
181+
{
182+
"question": "¿Cómo te gusta medir el éxito de tu trabajo?",
183+
"answers": [
184+
{
185+
"option": "Por la estabilidad y rapidez del sistema bajo carga.",
186+
"house": "Backend"
187+
},
188+
{
189+
"option": "Mediante la satisfacción del usuario con la interfaz visual.",
190+
"house": "Frontend"
191+
},
192+
{
193+
"option": "Por la fluidez y buen rendimiento de la app móvil en diferentes dispositivos.",
194+
"house": "Mobile"},
195+
{
196+
"option": "Por la precisión y relevancia de los resultados obtenidos en el análisis de datos.",
197+
"house": "Data"
198+
}
199+
]
200+
},
201+
{
202+
"question": "¿Qué te resulta más interesante al trabajar con tecnologías emergentes?",
203+
"answers": [
204+
{
205+
"option": "Trabajar con tecnologías de big data o inteligencia artificial.",
206+
"house": "Data"
207+
},
208+
{
209+
"option": "Explorar nuevas arquitecturas para mejorar el rendimiento del servidor.",
210+
"house": "Backend"
211+
},
212+
{
213+
"option": "Probar nuevas herramientas y metodologías para mejorar el diseño y la UX.",
214+
"house": "Frontend"
215+
},
216+
{
217+
"option": "Desarrollar apps móviles que aprovechen nuevas capacidades de hardware.",
218+
"house": "Mobile"
219+
}
220+
]
221+
},
222+
{
223+
"question": "¿Cómo te enfrentas a un nuevo problema en un proyecto?",
224+
"answers": [
225+
{
226+
"option": "Buscando patrones y soluciones basadas en análisis de datos.",
227+
"house": "Data"
228+
},
229+
{
230+
"option": "Replanteando la estructura visual y funcional de la interfaz.",
231+
"house": "Frontend"
232+
},
233+
{
234+
"option": "Explorando cómo mejorar la experiencia del usuario en dispositivos móviles.",
235+
"house": "Mobile"
236+
},
237+
{
238+
"option": "Analizando la estructura de datos y la lógica del backend.",
239+
"house": "Backend"
240+
}
241+
]
242+
}
243+
]
244+
245+
print("\n¡Bienvenido a Hogwarts, la escuela de programación para magos y brujas del código!")
246+
print("El sombrero seleccionador decidirá cuál es tu casa como programador.")
247+
248+
name = input("\n¿Cuál es tu nombre? ")
249+
250+
for index, question in enumerate(questions):
251+
252+
print(f"\nPregunta {index + 1}: {question["question"]}\n")
253+
254+
for i, answer in enumerate(question["answers"]):
255+
print(f"{i + 1}. {answer["option"]}")
256+
257+
choice = int(input("\nSelecciona una respuesta entre 1 y 4: "))
258+
259+
selected_answer = question["answers"][choice - 1]
260+
houses[selected_answer["house"]] += 1
261+
262+
assigned_house = max(houses, key=houses.get)
263+
scores = list(houses.values())
264+
265+
if scores.count(max(scores)) > 1:
266+
possible_houses = [
267+
house for house,
268+
points in houses.items() if points == max(scores)
269+
]
270+
assigned_house = random.choice(possible_houses)
271+
272+
print(
273+
f"""\nHmmmm... Ha sido una decisión muy complicada, {
274+
name}.\n¡Pero finalmente tu casa será {assigned_house}!"""
275+
)
276+
else:
277+
print(f"\nEnhorabuena, {name}.\n¡Tu casa será {assigned_house}!")

0 commit comments

Comments
 (0)