0Pricing
Competitive Programming Academy · Leçon

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 Competitive Programming Academy 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 Competitive Programming Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Competitive Programming Academy 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.stdin

Lisez 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.readline

Quand 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 Competitive Programming Academy, passe à CoddyKit PRO. Le cours Competitive Programming Academy 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 Competitive Programming Academy 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 Competitive Programming Academy ?

Aucune expérience préalable n'est requise. Competitive Programming Academy 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 Competitive Programming Academy ?

Oui. Chaque leçon Competitive Programming Academy 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

  1. input() contre sys.stdin : le duel
  2. Analyser plusieurs nombres sur une ligne
  3. Produire la sortie par lots correctement
  4. Lire N lignes et gérer les cas limites
← Retour à Competitive Programming Academy