es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Reiniciando un bucle en Python.

¿Cómo puedo reiniciar el bucle en el siguiente código después de que alcance 1, ya que en 3N+1 sigue 1>4>2>1?

Código:

import math
import random
num = 1
NumTF = False
play = True
while play:
  if num % 2 == 0:
    num = num / 2
  else:
    num = 3 * num + 1
print(num)
if num == 1:
  play = False
if play == False:
  num += 1 and play == True
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para reiniciar el bucle en el código siguiente después de que llegue a 1, puedes encerrar el código existente dentro de un bucle anidado. Este bucle anidado se ejecutará hasta que se cumpla la condición play == False, lo cual ocurre cuando num se vuelve 1. Una vez que num es igual a 1, el bucle externo continúa desde el valor inicial de num especificado fuera de los bucles. Aquí tienes un ejemplo de fragmento de código:

    import math
    import random
    
    play = True
    while play:
      num = random.randint(1,100)  # Generar un entero aleatorio entre 1 y 100
      NumTF = False
      inner_loop = True
      while inner_loop:
        if num % 2 == 0:
          num = num / 2
        else:
          num = 3 * num + 1
        print(num)
        if num == 1:
          inner_loop = False
      if inner_loop == False:
        play = True
    

    En este caso, el bucle externo genera un nuevo entero aleatorio num cada vez que se ejecuta, y el bucle interno procesa la secuencia 3N+1 hasta que num sea igual a 1. Una vez que el bucle interno se rompe, el bucle externo genera un nuevo valor aleatorio para num y ejecuta de nuevo el bucle interno, reiniciando así todo el proceso.

Comments are closed.