input() contre sys.stdin : le duel
Pourquoi input() classique vous pénalise sur les gros tests
input() contre sys.stdin : le duel est une leçon Coding Interview Prep gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Coding Interview Prep, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Coding Interview Prep comprend 4 leçons au total.
Le coût caché de input()
Chaque appel à input() effectue un travail supplémentaire en arrière-plan. Sur quelques lignes, cela convient, mais les concours peuvent vous envoyer des milliers de lignes. ⏱️
Pourquoi cela s’additionne
Le ralentissement vient du surcoût par appel : les invites, les vidages et les vérifications d’encodage se répètent pour chaque ligne lue.
Découvrez sys.stdin
La méthode la plus rapide consiste à lire depuis sys.stdin, le flux d’entrée brut. Elle évite les fonctionnalités pratiques ajoutées par input().
import sys
data = sys.stdinLisez rapidement une ligne
Utilisez sys.stdin.readline() pour récupérer rapidement une seule ligne. Cette fonction se comporte comme input(), mais avec un surcoût bien moindre par appel.
import sys
line = sys.stdin.readline()N’oubliez pas le saut de ligne
readline() conserve le caractère de saut de ligne final. Appelez .strip() pour le supprimer avant d’analyser la valeur.
n = int(sys.stdin.readline().strip())Lisez tout d’un coup
Pour une lecture encore plus rapide, récupérez toute l’entrée en une fois avec sys.stdin.read(), puis traitez vous-même le texte.
data = sys.stdin.read()Séparez tout le contenu
Après read(), appelez .split() pour transformer tous les jetons en une seule liste plate. Les espaces et les sauts de ligne sont traités ensemble.
tokens = sys.stdin.read().split()Réaffectez input pour gagner en vitesse
Une astuce courante consiste à faire pointer input vers readline afin que votre ancien code reste identique tout en s’exécutant plus vite.
import sys
input = sys.stdin.readlineQuand input() suffit
Si un problème ne lit que quelques lignes, input() convient parfaitement. Réservez la méthode rapide aux grandes entrées.
print a aussi un surcoût
La même idée s’applique à la sortie : de nombreux appels à print() sont lents. Nous réglerons ce problème dans une prochaine leçon consacrée au regroupement des sorties.
Choisissez le bon outil
La règle générale : pour une petite entrée, utilisez input() ; pour une grande entrée, passez à sys.stdin. Adapter l’outil à N vous fait gagner du temps.
Vérification rapide
Petite vérification intuitive de la vitesse de lecture.
Récapitulatif : lecture rapide
Vous avez découvert sys.stdin comme solution rapide de remplacement à input() : readline() pour chaque ligne, ou read().split() pour tout lire d’un coup. Adaptez l’outil à la taille de l’entrée. ⚡
Questions Fréquemment Posées
La leçon « input() contre sys.stdin : le duel » est-elle gratuite ?
Oui — le texte complet de « input() contre sys.stdin : le duel » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Coding Interview Prep, passe à CoddyKit PRO. Le cours Coding Interview Prep comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « input() contre sys.stdin : le duel » ?
Pourquoi input() classique vous pénalise sur les gros tests Tu pratiques Coding Interview Prep avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Coding Interview Prep ?
Aucune expérience préalable n'est requise. Coding Interview Prep sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « input() contre sys.stdin : le duel » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Coding Interview Prep ?
Oui. Chaque leçon Coding Interview Prep inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- input() contre sys.stdin : le duel
- Analyser plusieurs nombres sur une ligne
- Produire la sortie par lots correctement
- Lire N lignes et gérer les cas limites