|
| 1 | +'''* EJERCICIO: |
| 2 | + * Cada 1 de septiembre, el Hogwarts Express parte hacia la escuela |
| 3 | + * de programación de Hogwarts para magos y brujas del código. |
| 4 | + * En ella, su famoso sombrero seleccionador ayuda a los programadores |
| 5 | + * a encontrar su camino... |
| 6 | + * Desarrolla un programa que simule el comportamiento del sombrero. |
| 7 | + * Requisitos: |
| 8 | + * 1. El sombrero realizará 10 preguntas para determinar la casa del alumno. |
| 9 | + * 2. Deben existir 4 casas. Por ejemplo: Frontend, Backend, Mobile y Data. |
| 10 | + * (Puedes elegir las que quieras) |
| 11 | + * Acciones: |
| 12 | + * 1. Crea un programa que solicite el nombre del alumno y realice 10 |
| 13 | + * preguntas, con cuatro posibles respuestas cada una. |
| 14 | + * 2. Cada respuesta asigna puntos a cada una de las casas (a tu elección). |
| 15 | + * 3. Una vez finalizado, el sombrero indica el nombre del alumno |
| 16 | + * y a qué casa pertenecerá (resuelve el posible empate de manera aleatoria, |
| 17 | + * pero indicándole al alumno que la decisión ha sido complicada). |
| 18 | + */''' |
| 19 | +Frontend = 0 |
| 20 | +Backend = 0 |
| 21 | +Mobile = 0 |
| 22 | +Data = 0 |
| 23 | + |
| 24 | +def puntaje(n): |
| 25 | + global Frontend |
| 26 | + global Backend |
| 27 | + global Mobile |
| 28 | + global Data |
| 29 | + if n == 1: |
| 30 | + Frontend += 3 |
| 31 | + Backend += 1 |
| 32 | + Mobile += 2 |
| 33 | + Data += 0 |
| 34 | + elif n == 2: |
| 35 | + Frontend += 1 |
| 36 | + Backend += 3 |
| 37 | + Mobile += 0 |
| 38 | + Data += 2 |
| 39 | + elif n == 3: |
| 40 | + Frontend += 1 |
| 41 | + Backend += 0 |
| 42 | + Mobile += 3 |
| 43 | + Data += 1 |
| 44 | + elif n == 4: |
| 45 | + Frontend += 0 |
| 46 | + Backend += 2 |
| 47 | + Mobile += 0 |
| 48 | + Data += 3 |
| 49 | + else: |
| 50 | + print("Respuesta no válida, por favor elige una opción entre 1 y 4.") |
| 51 | + |
| 52 | +if __name__ == "__main__": |
| 53 | + name = input('Introduce tu nombre: ') |
| 54 | + print(f'{name}, voy a realizarte 10 preguntas para asignarte un perfil de desarrollador.') |
| 55 | + |
| 56 | + preguntas = [ |
| 57 | + '''¿Cuál es tu principal motivación al desarrollar? |
| 58 | + 1) Crear interfaces visuales atractivas. |
| 59 | + 2) Optimizar la lógica de procesamiento. |
| 60 | + 3) Hacer que la aplicación funcione de manera fluida en dispositivos móviles. |
| 61 | + 4) Analizar grandes volúmenes de datos para extraer información útil.''', |
| 62 | + |
| 63 | + '''¿Qué lenguaje te gusta usar más? |
| 64 | + 1) JavaScript o TypeScript. |
| 65 | + 2) Python o Java. |
| 66 | + 3) Swift o Kotlin. |
| 67 | + 4) R o SQL.''', |
| 68 | + |
| 69 | + '''¿Qué herramienta usas con más frecuencia? |
| 70 | + 1) Frameworks como React o Angular. |
| 71 | + 2) Servidores y bases de datos como Node.js o PostgreSQL. |
| 72 | + 3) IDEs para desarrollo móvil como Android Studio o Xcode. |
| 73 | + 4) Herramientas de análisis de datos como Pandas o TensorFlow.''', |
| 74 | + |
| 75 | + '''¿Qué disfrutas más de tu trabajo? |
| 76 | + 1) Crear experiencias de usuario. |
| 77 | + 2) Gestionar y procesar datos en servidores. |
| 78 | + 3) Desarrollar aplicaciones móviles que funcionen bien en diferentes dispositivos. |
| 79 | + 4) Resolver problemas usando análisis de datos.''', |
| 80 | + |
| 81 | + '''¿Qué tipo de bugs disfrutas resolviendo? |
| 82 | + 1) Errores en el diseño o comportamiento de la interfaz. |
| 83 | + 2) Fallos en la lógica del servidor o base de datos. |
| 84 | + 3) Problemas de compatibilidad entre dispositivos. |
| 85 | + 4) Inconsistencias en los modelos de datos o análisis.''', |
| 86 | + |
| 87 | + '''¿Cómo prefieres abordar la resolución de un problema? |
| 88 | + 1) Pensando en cómo afectará la experiencia del usuario. |
| 89 | + 2) Optimizando los procesos en el backend para mayor eficiencia. |
| 90 | + 3) Asegurando que la solución funcione en cualquier dispositivo móvil. |
| 91 | + 4) Aplicando algoritmos de análisis de datos.''', |
| 92 | + |
| 93 | + '''¿Qué tipo de proyecto te resulta más interesante? |
| 94 | + 1) Un sitio web interactivo y visualmente impresionante. |
| 95 | + 2) Una API robusta y escalable. |
| 96 | + 3) Una aplicación móvil innovadora. |
| 97 | + 4) Un sistema de análisis de grandes datos para insights de negocio.''', |
| 98 | + |
| 99 | + '''¿Con qué tipo de tecnologías te sientes más cómodo? |
| 100 | + 1) HTML, CSS, JavaScript. |
| 101 | + 2) Node.js, Django, Ruby on Rails. |
| 102 | + 3) Flutter, React Native. |
| 103 | + 4) Spark, Hadoop.''', |
| 104 | + |
| 105 | + '''¿Qué prefieres hacer en tu tiempo libre? |
| 106 | + 1) Jugar con diseños y CSS para hacer una web más bonita. |
| 107 | + 2) Crear una API que haga un proceso más eficiente. |
| 108 | + 3) Probar nuevas aplicaciones móviles y crear las tuyas. |
| 109 | + 4) Trabajar con grandes conjuntos de datos.''', |
| 110 | + |
| 111 | + '''¿Cuál consideras tu principal fortaleza? |
| 112 | + 1) Cuidar la experiencia y diseño visual del usuario. |
| 113 | + 2) Crear procesos eficientes y escalables. |
| 114 | + 3) Adaptar aplicaciones móviles para múltiples dispositivos. |
| 115 | + 4) Interpretar y analizar datos complejos.''' |
| 116 | + ] |
| 117 | + |
| 118 | + for pregunta in preguntas: |
| 119 | + while True: |
| 120 | + try: |
| 121 | + p = int(input(pregunta + '\n')) |
| 122 | + if p >= 1 and p <= 4: |
| 123 | + puntaje(p) |
| 124 | + break |
| 125 | + else: |
| 126 | + print("Por favor, elige una opción válida entre 1 y 4.") |
| 127 | + except ValueError: |
| 128 | + print("Por favor, introduce un número válido.") |
| 129 | + |
| 130 | + dic = {'Frontend': Frontend, 'Backend': Backend, 'Mobile': Mobile, 'Data': Data} |
| 131 | + |
| 132 | + casa = max(dic, key=dic.get) |
| 133 | + |
| 134 | + print(f'{name}, La casa que le ha sido otorgada es: {casa}') |
0 commit comments