Skip to content

Commit aa5f5b0

Browse files
authored
Merge pull request mouredev#6255 from rigo93acosta/main
mouredev#36 - Python
2 parents bfdc33b + 4fe8891 commit aa5f5b0

File tree

1 file changed

+269
-0
lines changed

1 file changed

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

0 commit comments

Comments
 (0)