Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/08/2009, 12:04
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: Ayuda - Cambiar nombre de diccionario

Tu código "mejorado"
Código python:
Ver original
  1. #Se crea un diccionario para el personaje
  2. dic_personaje = {'fuerza': 0, 'resistencia': 0, 'destreza': 0, 'inteligencia': 0, 'percepcion': 0} #Se crea un diccionario para los atributos
  3.  
  4. #FUERZA
  5. while not dic_personaje['fuerza']: #Mientras el valor de fuerza sea 0, se preguntará por un valor valido para fuerza.
  6.     dic_personaje['fuerza'] = int(input("Fuerza: ")) #Eval es demasiado poderoso, ojo valida tus entradas...
  7.         if dic_personaje['fuerza'] > 10:
  8.             print("El máximo son 10 puntos. ")#Si es mayor de 10 puntos te avisa con este mensaje.
  9.         elif dic_personaje['fuerza'] < 2:
  10.             print("El mínimo son 2 puntos. ")#Si es menor de 2 puntos te avisa con este mensaje.
  11.         if dic_personaje['fuerza'] > 10 or dic_personaje['fuerza'] < 2:
  12.             dic_personaje['fuerza'] = 0 #El atributo se restablece a 0 para volver a solicitar hasta que se introduzca un  numero valido
  13.             continue #Continua el ciclo sin, pasar por las demas instrucciones
  14.         print("Ok")
  15.  
  16. #RESISTENCIA
  17. while not dic_personaje['resistencia']:
  18.     dic_personaje['resistencia'] = int(input("Resistencia: "))
  19.  
  20.     if dic_personaje['resistencia'] > 10:
  21.         print("El máximo son 10 puntos. ")
  22.     if dic_personaje['resistencia'] < 2:
  23.         print("El mínimo son 2 puntos. ")
  24.  
  25.     if dic_personaje['resistencia'] > 10 or dic_personaje['resistencia'] < 2:
  26.         dic_personaje['resistencia'] = 0
  27.         continue
  28.     print("Ok")
  29.  
  30. #DESTREZA
  31. while not dic_personaje['destreza']:
  32.     dic_personaje['destreza'] = int(input("Destreza: "))        
  33.            
  34.     if dic_personaje['destreza'] > 10:
  35.         print("El máximo son 10 puntos. ")
  36.     if dic_personaje['destreza'] < 2:
  37.         print("El mínimo son 2 puntos. ")
  38.     if dic_personaje['destreza'] > 10 or dic_personaje['destreza'] < 2:
  39.         dic_personaje['destreza'] = 0
  40.         continue
  41.     print("Ok")
  42.  
  43. #INTELIGENCIA
  44. while not dic_personaje['inteligencia']:
  45.     dic_personaje['inteligencia'] = int(input("Inteligencia: "))            
  46.  
  47.     if dic_personaje['inteligencia'] > 10:
  48.         print("El máximo son 10 puntos. ")
  49.     elif dic_personaje['inteligencia'] < 2:
  50.         print("El mínimo son 2 puntos. ")
  51.     if dic_personaje['inteligencia'] > 10 or dic_personaje['inteligencia'] < 2:
  52.         dic_personaje['inteligencia'] = 0
  53.         continue
  54.     print("Ok")
  55.  
  56. #PERCEPCIÓN
  57. while not dic_personaje['percepcion']:
  58.     dic_personaje['percepcion'] = int(input("Percepcion: "))
  59.            
  60.     if dic_personaje['percepcion'] > 10:
  61.         print("El máximo son 10 puntos. ")
  62.     elif dic_personaje['percepcion'] < 2:
  63.         print("El mínimo son 2 puntos. ")
  64.     if dic_personaje['percepcion'] > 10 or dic_personaje['percepcion'] < 2:
  65.         dic_personaje['percepcion'] = 0
  66.     print("Ok")
  67.  
  68. #Se suman todos los atributos y se asignan a la variable total_puntos
  69. total_puntos = dic_personaje['fuerza'] + dic_personaje['resistencia'] + dic_personaje['destreza'] + dic_personaje['inteligencia'] + dic_personaje['percepcion']
  70.  
  71. if total_puntos < 40:
  72.     print("te faltan puntos por asignar")
  73. elif total_puntos > 40:
  74.     print("te has pasado de puntos")
  75. else:
  76.     print("puntos asignados")

Mi codigo:
Código python:
Ver original
  1. #Se crea un diccionario para el personaje
  2. dic_personaje = {'fuerza': 0, 'resistencia': 0, 'destreza': 0, 'inteligencia': 0, 'percepcion': 0} #Se crea un diccionario para los atributos
  3.  
  4. #FUERZA
  5. def get_skill(text):
  6.     skill = 0
  7.     while not skill:
  8.         while True:
  9.             s = ""
  10.             try:
  11.                 s = int(input(text))
  12.             except ValueError:
  13.                 print ("Por favor, introduzca un numero, diferente de 0")
  14.             finally:
  15.                 if s:
  16.                     break
  17.         skill = s
  18.         if skill > 10:
  19.             print("El máximo son 10 puntos. ")#Si es mayor de 10 puntos te avisa con este mensaje.
  20.         elif skill < 2:
  21.             print("El mínimo son 2 puntos. ")#Si es menor de 2 puntos te avisa con este mensaje.
  22.         if skill > 10 or skill < 2:
  23.             skill = 0 #El atributo se restablece a 0 para volver a solicitar hasta que se introduzca un  numero valido
  24.         else:
  25.             print("Ok")
  26.             return skill
  27.  
  28. total = 0
  29. for i in dic_personaje.keys():
  30.     print("%s %s"%(type(total), type(dic_personaje[i])))
  31.     dic_personaje[i] = get_skill("%s:  "%i)
  32.     total += dic_personaje[i]
  33.  
  34. if total < 40:
  35.     print("te faltan puntos por asignar")
  36. elif total > 40:
  37.     print("te has pasado de puntos")
  38. else:
  39.     print("puntos asignados")

Ya no ejecute el codigo, pero por lo menos el mio debe de jalar :p