Disputa entre input() e sys.stdin
Por que o input() simples prejudica você em testes grandes.
Disputa entre input() e sys.stdin é uma aula grátis de Coding Interview Prep no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Coding Interview Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Coding Interview Prep inclui 4 aulas no total.
O custo oculto de input()
Cada chamada de input() realiza trabalho extra nos bastidores. Em algumas linhas, isso não é um problema, mas as competições podem fornecer milhares de linhas. ⏱️
Por que isso se acumula
A lentidão vem do custo por chamada: solicitações, esvaziamento de buffers e verificações de codificação se repetem em cada linha lida.
Conheça sys.stdin
O caminho mais rápido é ler de sys.stdin, o fluxo bruto de entrada. Ele ignora os recursos adicionais que input() oferece.
import sys
data = sys.stdinLeia uma linha rapidamente
Use sys.stdin.readline() para obter uma única linha rapidamente. Seu comportamento é semelhante ao de input(), mas com muito menos custo por chamada.
import sys
line = sys.stdin.readline()Preste atenção à quebra de linha
readline() mantém o caractere final de quebra de linha. Chame .strip() para removê-lo antes de analisar o valor.
n = int(sys.stdin.readline().strip())Leia tudo de uma vez
Para fazer leituras ainda mais rápidas, obtenha toda a entrada de uma só vez com sys.stdin.read() e processe o texto por conta própria.
data = sys.stdin.read()Divida todo o bloco
Depois de read(), chame .split() para transformar todos os tokens em uma única lista simples. Espaços em branco e quebras de linha são tratados juntos.
tokens = sys.stdin.read().split()Redirecione input para ganhar velocidade
Um truque comum é fazer input apontar para readline, para que seu código antigo continue igual, mas execute mais rápido.
import sys
input = sys.stdin.readlineQuando input() é suficiente
Se um problema lê apenas algumas linhas, o input() comum é perfeitamente suficiente. Deixe o caminho rápido para entradas grandes.
Print também tem custo
A mesma ideia se aplica à saída: muitas chamadas de print() são lentas. Corrigiremos isso em uma lição posterior sobre agrupamento.
Escolha a ferramenta certa
A regra geral é: entrada pequena, use input(); entrada grande, mude para sys.stdin. Escolher a ferramenta de acordo com N ajuda a não perder pontos.
Verificação rápida
Uma verificação rápida e intuitiva sobre a velocidade de leitura.
Recapitulação: leitura rápida
Você conheceu sys.stdin como alternativa rápida a input(): readline() para cada linha ou read().split() para tudo. Escolha a ferramenta de acordo com o tamanho da entrada. ⚡
Perguntas Frequentes
A aula “Disputa entre input() e sys.stdin” é grátis?
Sim — o texto completo de “Disputa entre input() e sys.stdin” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Coding Interview Prep, atualize para CoddyKit PRO. O curso de Coding Interview Prep inclui 4 aulas no total.
O que vou aprender em “Disputa entre input() e sys.stdin”?
Por que o input() simples prejudica você em testes grandes. Você pratica Coding Interview Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Coding Interview Prep?
Nenhuma experiência prévia é necessária. Coding Interview Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Disputa entre input() e sys.stdin”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Coding Interview Prep?
Sim. Cada aula de Coding Interview Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Disputa entre input() e sys.stdin
- Analisando Muitos Números em uma Linha
- A Forma Correta de Gerar Saídas em Lote
- Lendo N Linhas e Casos Extremos