Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/08/2009, 07:47
Abelmaster
 
Fecha de Ingreso: junio-2007
Mensajes: 2
Antigüedad: 16 años, 10 meses
Puntos: 0
Pregunta Ayuda - Cambiar nombre de diccionario

Hola a todos. Tras leer documentación de Python 3, estoy desarrollando mi primer programa con licencia GPL.

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:
#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")
El nombre de usuario lo solicito con input pero ahi me quedo.
Por cierto que si alguien tiene alguna idea para mejorar el código tambien es de agradecer.

Un saludo