É possível também "sair" do loop infinito com break:
while True:
n = int(input())
print('The input was:', n)
if n == -1:
break
print('End of the program!')
Entrada
Saída
10 20 16 8 0 2 -1
The input was: 10 The input was: 20 The input was: 16 The input was: 8 The input was: 0 The input was: 2 The input was: -1
Assim que o número inserido é -1, o programa interrompe o loop. Podemos quebrar o loop no momento apropriado para evitar que o programa execute algo indesejado para entradas específicas.
Desafio
Dada uma sequência de números inteiros, queremos saber quantas vezes o maior número da sequência é repetido.
A sequência é fornecida como um fluxo de números inteiros e termina assim que o número inserido for igual a 0. O restante da entrada deve ser ignorado.
O programa deve imprimir um único inteiro — o número de vezes que o elemento máximo na sequência é repetido.
Entrada
Saída
5 5 1 1 5 3 0 9 11 4 5
3
Explicação: O maior número é 5 e aparece 3 vezes antes da sequência ser terminada.