Hola!!
He empezado a usar python 3 hace poco y he aprendido bastante con los tutoriales y demás cosillas que he ido encontrando por aquí, pero al final me he topado con un problema que no soy capaz de resolver solo. Siguiendo los ejercicios de este post (http://foro.elhacker.net/ejercicios/juego_ejercicios_python-t278592.0.html) se me ocurrió hacer una cosa para practicar siguiendo el reto del usuario Masita, que consistía hacer un programa que tirase dados:
En principio, lo que debería hacer es generar una tirada (que funciona) y si escribes s y le das al enter el programa se cierra. Si le das al enter directamente vuelve a empezar. El problema es que la variable lista "resultados" no se borra bien porque si haces una tirada inferior en número de dados no muestra nada y si es superior enseña los dados de la anterior mas los que tira. Vamos, que soy incapaz de reiniciar el valor 0 de la lista. He probado con comandos como del, igualando la lista a None... no sé qué hacer. ¿Alguna idea? ¿Por qué pasa esto?
He empezado a usar python 3 hace poco y he aprendido bastante con los tutoriales y demás cosillas que he ido encontrando por aquí, pero al final me he topado con un problema que no soy capaz de resolver solo. Siguiendo los ejercicios de este post (http://foro.elhacker.net/ejercicios/juego_ejercicios_python-t278592.0.html) se me ocurrió hacer una cosa para practicar siguiendo el reto del usuario Masita, que consistía hacer un programa que tirase dados:
Código (python) [Seleccionar]
import random
indice = 0
contador=0
salir=0
while True:
resultados=[]
dados = (input (" Número de Dados: "))
caras = (input (" Número de Caras: "))
dadosenteros=int(dados)
carasenteras=int(caras)
while indice < dadosenteros:
x=random.randint(1,carasenteras)
resultados.append(x)
indice +=1
resultados.sort()
for x in range(len(resultados)-1,-1,-1):
print (resultados[x])
salir = (input("Presiona enter para volver a lanzar o escribe s para salir-> "))
if salir == "s":
exit()
else:
del resultados
continue
En principio, lo que debería hacer es generar una tirada (que funciona) y si escribes s y le das al enter el programa se cierra. Si le das al enter directamente vuelve a empezar. El problema es que la variable lista "resultados" no se borra bien porque si haces una tirada inferior en número de dados no muestra nada y si es superior enseña los dados de la anterior mas los que tira. Vamos, que soy incapaz de reiniciar el valor 0 de la lista. He probado con comandos como del, igualando la lista a None... no sé qué hacer. ¿Alguna idea? ¿Por qué pasa esto?