Generation

generate functionFri, 08 Nov 2024

corrige este código import sqlite3 # Conectar a la base de datos conn = sqlite3.connect('test_acoso.db') cursor = conn.cursor() # Crear tabla resultados cursor.execute(''' CREATE TABLE IF NOT EXISTS resultados ( id INTEGER PRIMARY KEY AUTOINCREMENT, tipo_acoso TEXT, recomendacion TEXT, fecha DATE DEFAULT CURRENT_DATE ); ''') # Commit y cerrar conexión conn.commit() conn.close() def bienvenida(): print("¡Bienvenido al siguiente test! Responde las siguientes 10 preguntas con la mayor sinceridad posible.") def preguntas(): respuestas = [] preguntas = [ "1. ¿Has recibido comentarios hirientes o insultos de alguien? (si/no)", "2. ¿Te han agredido físicamente en alguna ocasión? (si/no)", "3. ¿Sientes que alguien te manipula emocionalmente? (si/no)", "4. ¿Has sido víctima de hostigamiento en redes sociales? (si/no)", "5. ¿Alguien te ha hecho insinuaciones sexuales no deseadas? (si/no)", "6. ¿Te han amenazado verbalmente? (si/no)", "7. ¿Has sentido miedo de salir debido a un agresor? (si/no)", "8. ¿Recibes mensajes ofensivos por internet? (si/no)", "9. ¿Alguien ha invadido tu privacidad de manera constante? (si/no)", "10. ¿Sientes que tus sentimientos no son tomados en cuenta por alguien cercano? (si/no)" ] for pregunta in preguntas: respuesta = input(pregunta).strip().lower() while respuesta not in ["si", "no"]: print("Por favor, responde con 'si' o 'no'.") respuesta = input(pregunta).strip().lower() respuestas.append(respuesta) return respuestas def analizar_respuestas(respuestas): tipos_acoso = { "verbal": 0, "fisico": 0, "emocional": 0, "cibernetico": 0, "sexual": 0 } if respuestas[0] == "si" or respuestas[6] == "si": tipos_acoso["verbal"] += 1 if respuestas[1] == "si": tipos_acoso["fisico"] += 1 if respuestas[2] == "si" or respuestas[9] == "si": tipos_acoso["emocional"] += 1 if respuestas[3] == "si" or respuestas[8] == "si": tipos_acoso["cibernetico"] += 1 if respuestas[4] == "si": tipos_acoso["sexual"] += 1 return tipos_acoso def recomendaciones(tipos_acoso): recomendaciones_texto = [] if tipos_acoso["verbal"] > 0: recomendaciones_texto.append("- Para el acoso verbal: Habla con alguien de confianza sobre lo que estás sintiendo y considera documentar los incidentes.") if tipos_acoso["fisico"] > 0: recomendaciones_texto.append("- Para el acoso físico: Busca ayuda inmediata antes de que pase a mayores, ya sea hablando con un amigo, familiar o autoridad.") if tipos_acoso["emocional"] > 0: recomendaciones_texto.append("- Para el acoso emocional: Considera hablar con un profesional que pueda ayudarte a manejar la situación.") if tipos_acoso["cibernetico"] > 0: recomendaciones_texto.append("- Para el acoso cibernético: Bloquea a la persona y reporta el comportamiento en la plataforma correspondiente.") if tipos_acoso["sexual"] > 0: recomendaciones_texto.append("- Para el acoso sexual: Es importante que hables con alguien que pueda apoyarte y considera contactar a las autoridades.") return recomendaciones_texto def resultado(tipos_acoso): resultados = [] for tipo, cantidad in tipos_acoso.items(): if cantidad > 0: resultados.append(f"- Podrías estar sufriendo acoso {tipo.capitalize()}.") return resultados def guardar_resultados_en_bd(tipos_acoso, recomendaciones): conn = sqlite3.connect('test_acoso.db') cursor = conn.cursor() for tipo, cantidad in tipos_acoso.items(): if cantidad > 0: cursor.execute(''' INSERT INTO resultados (tipo_acoso, recomendacion, fecha) VALUES (?, ?, CURRENT_DATE); ''', (tipo, recomendaciones[tipos_acoso.keys().tolist().index(tipo)])) conn.commit() conn.close() def menu(): print("Menú de opciones:") print("1. Realizar test") print("2. Ver resultados anteriores") print("3. Salir") def ver_resultados(): try: conn = sqlite3.connect('test_acoso.db') cursor = conn.cursor() cursor.execute('SELECT * FROM resultados;') resultados = cursor.fetchall() for resultado in resultados: print(f"ID: {resultado[0]}, Tipo de acoso: {resultado[1]}, Recomendación: {resultado[2]}, Fecha: {resultado[3]}") except sqlite3.Error as e: print(f"Ocurrió un error al obtener los resultados: {e}") def main(): while True: menu() opcion = input("Seleccione una opción: ") if opcion == "1": bienvenida() respuestas = preguntas() tipos_acoso = analizar_respuestas(respuestas) recomendaciones_resultados = recomendaciones(tipos_acoso) resultados = resultado(tipos_acoso) print("\nResultados del test:") for r in resultados: print(r) print("\nRecomendaciones:") for r in recomendaciones_resultados: print(r) guardar_resultados_en_bd(tipos_acoso, recomendaciones_resultados) elif opcion == "2": ver_resultados() elif opcion == "3": print("Adiós") break else: print("Opción inválida") if __name__ == "__main__": main()

Please keep input under 1000 characters

Questions about programming?Chat with your personal AI assistant