Sempre que você usar while True: vai precisar colocar em alguma parte do corpo do while um critério de parada para o loop.
Geralmente usamos um if dentro do corpo do while para testar se a condição de parada do loop do while já foi atendida. E dentro do corpo do if, usamos *break ou *return para sair do loop do while.
O break faz você sair imediatamente do corpo do while e continua executando o código abaixo do while.
O return faz com que você saia imediatamente do corpo de uma função (caso o while True: esteja sendo executado dentro de uma função.
Exemplo1:
contador = 1
while True:
contador+=1 # O contador está aumentando uma unidade a cada loop.
if contador == 10:
break
Exemplo2:
def jogando_dados():
"""Função que joga um dado de 6 lados (de forma aleatória) várias vezes e dá um print a cada resultado. Mas quando sai o número 1, a função
para imediatamente e não imprime esse resultado 1."""
from random import randint # Importando o módulo que gera os números aleatórios do dado.
while True:
numero_do_dado = randint(1, 6) # Sorteamos um número.
if numero_do_dado != 1: # Se for diferente de 1, damos o print do número.
print("O número do dado é -> ", numero_do_dado)
else: # Quando o número é igual a 1, vamos sair da função.
return
jogando_dados() # Chamada da função, para ver os resultados do dado.