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
):

