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
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 cuandonum
se vuelve 1. Una vez quenum
es igual a 1, el bucle externo continúa desde el valor inicial denum
especificado fuera de los bucles. Aquí tienes un ejemplo de fragmento de código:En este caso, el bucle externo genera un nuevo entero aleatorio
num
cada vez que se ejecuta, y el bucle interno procesa la secuencia3N+1
hasta quenum
sea igual a 1. Una vez que el bucle interno se rompe, el bucle externo genera un nuevo valor aleatorio paranum
y ejecuta de nuevo el bucle interno, reiniciando así todo el proceso.