Tu código "mejorado"
Código python:
Ver original#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 not dic_personaje['fuerza']: #Mientras el valor de fuerza sea 0, se preguntará por un valor valido para fuerza.
dic_personaje['fuerza'] = int(input("Fuerza: ")) #Eval es demasiado poderoso, ojo valida tus entradas...
if dic_personaje['fuerza'] > 10:
print("El máximo son 10 puntos. ")#Si es mayor de 10 puntos te avisa con este mensaje.
elif dic_personaje['fuerza'] < 2:
print("El mínimo son 2 puntos. ")#Si es menor de 2 puntos te avisa con este mensaje.
if dic_personaje['fuerza'] > 10 or dic_personaje['fuerza'] < 2:
dic_personaje['fuerza'] = 0 #El atributo se restablece a 0 para volver a solicitar hasta que se introduzca un numero valido
continue #Continua el ciclo sin, pasar por las demas instrucciones
print("Ok")
#RESISTENCIA
while not dic_personaje['resistencia']:
dic_personaje['resistencia'] = int(input("Resistencia: "))
if dic_personaje['resistencia'] > 10:
print("El máximo son 10 puntos. ")
if dic_personaje['resistencia'] < 2:
print("El mínimo son 2 puntos. ")
if dic_personaje['resistencia'] > 10 or dic_personaje['resistencia'] < 2:
dic_personaje['resistencia'] = 0
continue
print("Ok")
#DESTREZA
while not dic_personaje['destreza']:
dic_personaje['destreza'] = int(input("Destreza: "))
if dic_personaje['destreza'] > 10:
print("El máximo son 10 puntos. ")
if dic_personaje['destreza'] < 2:
print("El mínimo son 2 puntos. ")
if dic_personaje['destreza'] > 10 or dic_personaje['destreza'] < 2:
dic_personaje['destreza'] = 0
continue
print("Ok")
#INTELIGENCIA
while not dic_personaje['inteligencia']:
dic_personaje['inteligencia'] = int(input("Inteligencia: "))
if dic_personaje['inteligencia'] > 10:
print("El máximo son 10 puntos. ")
elif dic_personaje['inteligencia'] < 2:
print("El mínimo son 2 puntos. ")
if dic_personaje['inteligencia'] > 10 or dic_personaje['inteligencia'] < 2:
dic_personaje['inteligencia'] = 0
continue
print("Ok")
#PERCEPCIÓN
while not dic_personaje['percepcion']:
dic_personaje['percepcion'] = int(input("Percepcion: "))
if dic_personaje['percepcion'] > 10:
print("El máximo son 10 puntos. ")
elif dic_personaje['percepcion'] < 2:
print("El mínimo son 2 puntos. ")
if dic_personaje['percepcion'] > 10 or dic_personaje['percepcion'] < 2:
dic_personaje['percepcion'] = 0
print("Ok")
#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:
print("te faltan puntos por asignar")
elif total_puntos > 40:
print("te has pasado de puntos")
else:
print("puntos asignados")
Mi codigo:
Código python:
Ver original#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
def get_skill(text):
skill = 0
while not skill:
while True:
s = ""
try:
s = int(input(text))
except ValueError:
print ("Por favor, introduzca un numero, diferente de 0")
finally:
if s:
break
skill = s
if skill > 10:
print("El máximo son 10 puntos. ")#Si es mayor de 10 puntos te avisa con este mensaje.
elif skill < 2:
print("El mínimo son 2 puntos. ")#Si es menor de 2 puntos te avisa con este mensaje.
if skill > 10 or skill < 2:
skill = 0 #El atributo se restablece a 0 para volver a solicitar hasta que se introduzca un numero valido
else:
print("Ok")
return skill
total = 0
for i in dic_personaje.keys():
print("%s %s"%(type(total), type(dic_personaje[i])))
dic_personaje[i] = get_skill("%s: "%i)
total += dic_personaje[i]
if total < 40:
print("te faltan puntos por asignar")
elif total > 40:
print("te has pasado de puntos")
else:
print("puntos asignados")
Ya no ejecute el codigo, pero por lo menos el mio debe de jalar :p