Debido a mis conocimientos me he topado con un problema que aún no he conseguido resolver solo y me esta matando debido a que tiene que ser probablemente muy sencillo. Este módulo del programa crea un diccionario y le asigna una serie de valores a unas características que se preguntan al usuario.
El problema es que al principio del programa quiero que el nombre del diccionario se asigne al siguiente nombre: dic_ y seguidamente el nombre que introduzca el usuario. He estado probando algunas cosas pero no consigo avanzar.
El modulo es el siguiente:
Código:
El nombre de usuario lo solicito con input pero ahi me quedo.#Se crea un diccionario para el personaje dic_personaje = {'fuerza': 0, 'resistencia': 0, 'destreza': 0, 'inteligencia': 0, 'percepcion': 0} #Se crea un diccionario para los atributos #FUERZA while dic_personaje['fuerza'] == 0: #Mientras el valor de fuerza sea 0, se preguntará por un valor valido para fuerza. dic_personaje['fuerza'] = eval(input("Fuerza: ")) if dic_personaje['fuerza'] <= 10: #Si el numero es menor o igual que 10... if dic_personaje['fuerza'] >= 2:#Y mayor o igual que 2... print("Ok") #...es correcto. if dic_personaje['fuerza'] > 10 or dic_personaje['fuerza'] < 2:#Si el numero es mayor de 10 o menor de 2... if dic_personaje['fuerza'] > 10: print("El máximo son 10 puntos. ")#Si es mayor de 10 puntos te avisa con este mensaje. if dic_personaje['fuerza'] < 2: print("El mínimo son 2 puntos. ")#Si es menor de 2 puntos te avisa con este mensaje. dic_personaje['fuerza'] = 0 #El atributo se restablece a 0 para volver a solicitar hasta que se introduzca un numero valido #RESISTENCIA while dic_personaje['resistencia'] == 0: dic_personaje['resistencia'] = eval(input("Resistencia: ")) if dic_personaje['resistencia'] <= 10: if dic_personaje['resistencia'] >= 2: print("Ok") if dic_personaje['resistencia'] > 10 or dic_personaje['resistencia'] < 2: if dic_personaje['resistencia'] > 10: print("El máximo son 10 puntos. ") if dic_personaje['resistencia'] < 2: print("El mínimo son 2 puntos. ") dic_personaje['resistencia'] = 0 #DESTREZA while dic_personaje['destreza'] == 0: dic_personaje['destreza'] = eval(input("Destreza: ")) if dic_personaje['destreza'] <= 10: if dic_personaje['destreza'] >= 2: print("Ok") if dic_personaje['destreza'] > 10 or dic_personaje['destreza'] < 2: if dic_personaje['destreza'] > 10: print("El máximo son 10 puntos. ") if dic_personaje['destreza'] < 2: print("El mínimo son 2 puntos. ") dic_personaje['destreza'] = 0 #INTELIGENCIA while dic_personaje['inteligencia'] == 0: dic_personaje['inteligencia'] = eval(input("Inteligencia: ")) if dic_personaje['inteligencia'] <= 10: if dic_personaje['inteligencia'] >= 2: print("Ok") if dic_personaje['inteligencia'] > 10 or dic_personaje['inteligencia'] < 2: if dic_personaje['inteligencia'] > 10: print("El máximo son 10 puntos. ") if dic_personaje['inteligencia'] < 2: print("El mínimo son 2 puntos. ") dic_personaje['inteligencia'] = 0 #PERCEPCIÓN while dic_personaje['percepcion'] == 0: dic_personaje['percepcion'] = eval(input("Percepcion: ")) if dic_personaje['percepcion'] <= 10: if dic_personaje['percepcion'] >= 2: print("Ok") if dic_personaje['percepcion'] > 10 or dic_personaje['percepcion'] < 2: if dic_personaje['percepcion'] > 10: print("El máximo son 10 puntos. ") if dic_personaje['percepcion'] < 2: print("El mínimo son 2 puntos. ") dic_personaje['percepcion'] = 0 #Se suman todos los atributos y se asignan a la variable total_puntos total_puntos = dic_personaje['fuerza'] + dic_personaje['resistencia'] + dic_personaje['destreza'] + dic_personaje['inteligencia'] + dic_personaje['percepcion'] if total_puntos <= 40: if total_puntos < 40: print("te faltan puntos por asignar") if total_puntos == 40: print("puntos asignados") if total_puntos > 40: print("te has pasado de puntos")
Por cierto que si alguien tiene alguna idea para mejorar el código tambien es de agradecer.
Un saludo