É possível "sair" do loop infinito com break também:
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 digitado for -1, o programa interrompe o loop. Podemos quebrar o loop no momento apropriado para evitar que o programa execute algo indesejado para uma determinada entrada.
Desafio
Dada uma sequência de números inteiros, queremos saber quantas vezes o maior número na sequência se repete.
A sequência é fornecida como um fluxo de números inteiros, e é encerrada assim que o número digitado for igual a 0. O restante da entrada deve ser ignorado.
O programa deve imprimir um único número inteiro - o número de vezes que o elemento máximo na sequência se repete.
Entrada
Saída
5
5
1
1
5
3
0
9
11
4
5
3
Explicação: O maior número é 5 e ele aparece 3 vezes antes da sequência ser encerrada.