Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Problema de dados
#1
Buenos dias gente.

Les paso abajo un problema o ejercicio que debo hacer.

No entiendo como codificar para que se repita el bucle.

Trate con Return de varias formas y todas me dieron error.

Me podran ayudar???


"" Hacer un programa y que cada vez que ejecutamos el programa, éste elegirá dos números aleatorios entre el 1 y el 6.
El programa deberá imprimirlos en pantalla, imprimir su suma y preguntarle al usuario si quiere tirar los dados otra vez"""

Este es mi codigo:

s = ""
cont = s
while cont == s:
    a=int(random.randrange(16))
    b=int(random.randrange(16))

    print("El numero del primer dado es: " , a)
    print("El numero del segundo dado es: ", b)

    print("La suma de ambos dados es: " , (a + b))

    s = input("Desea continuar: ")


Esta es la desvolucion:

PS C:\Users\juanp\Desktop\Python\Modulo 1> & C:/Users/juanp/AppData/Local/Programs/Python/Python39/python.exe "c:/Users/juanp/Desktop/Python/Modulo 1/Dados Juan Rodriguez.py"
El numero del primer dado es:  5
El numero del segundo dado es:  2
La suma de ambos dados es:  7
Desea continuar: s
PS C:\Users\juanp\Desktop\Python\Modulo 1>



Obviamente estoy haciendo algo mal, pq no vuelve al bucle.

Gracias por su ayuda.

Saludos
Responder
#2
Hola, ¿cómo estás?

Tené en cuenta que tu variable "cont" la estás inicializando como una cadena vacía (cont = s, y s es una cadena vacía) y se mantiene siempre con ese valor. O sea que cont == s, que es la condición de tu bucle, está chequeando si s es una cadena vacía. Eso solo ocurre ni bien arrancás el programa, porque después le asignas un valor con s = input(...). Entonces, no importa qué haya escrito el usuario en la consola (salvo que haya apretado enter sin escribir), siempre va a salir del bucle.

Lo podrías replantear así:

  1. respuesta = "s"
  2. while respuesta == "s":
  3. a=int(random.randrange(1, 6))
  4. b=int(random.randrange(1, 6))
  5.  
  6. print("El numero del primer dado es: " , a)
  7. print("El numero del segundo dado es: ", b)
  8.  
  9. print("La suma de ambos dados es: " , (a + b))
  10.  
  11. respuesta = input("Desea continuar (s/n): ")


Por otro lado, randrange(1, 6) genera un número aleatorio entre 1 y 5. Recordá que en los rangos (como en range), el último número siempre está excluido.

Saludos!
Responder
#3
(02-11-2020, 10:20 PM)Francisco escribió: Por otro lado, randrange(1, 6) genera un número aleatorio entre 1 y 5. Recordá que en los rangos (como en range), el último número siempre está excluido.

No soy el autor del problema, pero mirando un código vi que habían usado range(1, 6 +1). Yo me preguntaba que sentido tenia esa suma y ahora entiendo porque. Saludos.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)