Si correcto, muchas gracias Daniel. Una forma de no usar break es poner el condicional en el while. Ahora, para mi es mas facil de entender un código con break "Si pasa esto me salgo del ciclo en el que estoy" a con una condición while "Si pasa esto cambio el booleano a falso, luego pueden o no pasar cosas, en la siguiente iteración me salgo.". Fuera de eso, no sé si hay algún problema a nivel de ejecución (velocidades o cosas) pero en caso de no haberlo prefiero el break.
Nota: Esto que digo solo aplica si hay una condicional booleana que se altere en medio del código, en caso contrario, en efecto puede ser mejor la condición en el while. Supongo que es tema de preferencias. No estoy seguro si Clean Code habla de esto.
Aunque en tu caso en Macro Flash tengo entendido que tienes el do-while (si al terminar pasa esto me salgo), puede que lo prefieras.
De todas formas si el tema es hacerlo lo mas reducido y correcto posible (con bubble) quizás la opción correcta sea algo como esto:
Nota: Esto que digo solo aplica si hay una condicional booleana que se altere en medio del código, en caso contrario, en efecto puede ser mejor la condición en el while. Supongo que es tema de preferencias. No estoy seguro si Clean Code habla de esto.
Aunque en tu caso en Macro Flash tengo entendido que tienes el do-while (si al terminar pasa esto me salgo), puede que lo prefieras.
De todas formas si el tema es hacerlo lo mas reducido y correcto posible (con bubble) quizás la opción correcta sea algo como esto:
Código (python) [Seleccionar]
# Seteo de variables
Player1Speed = 2
Player2Speed = 3
Player3Speed = 1
Player4Speed = 4
# Calculo la cantidad de jugadores y seteo y orden de turnos.
l = 0
while f"Player{l+1}Speed" in globals(): #verifico si la variable i+1 existe (ahora no hay error de try except)
l+=1
exec(f'Turn{l} = "Player{l}"') #seteo Turn1 directamente con el nombre del player
j = l
while 1 < j: #ordenamiento burbuja "inverso" directamente en la definición de variables
if(eval(eval(f'Turn{j-1}') + str('Speed')) < eval(eval(f'Turn{j}') + str('Speed'))): #si el player actual es mas rapido que el anterior entonces ejecuto lo siguiente
exec(f'Turn{j}, Turn{j-1} = Turn{j-1}, Turn{j}') #intercambio el player actual con el anterior
else: #en caso contrario
break #me salgo de este ciclo, ya que los anteriores estan ordenados
j-= 1 #resto a j-1
#imprimir resultados
i = 1
while i <= l:
print(f'Turn{i} = {eval("Turn" + str(i))}')
i += 1