0Pricing
Coding Interview Prep · Lección

Duelo entre input() y sys.stdin

Por qué input() simple le perjudica en pruebas grandes

Duelo entre input() y sys.stdin es una lección gratuita de Coding Interview Prep en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Coding Interview Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Coding Interview Prep incluye 4 lecciones en total.

El coste oculto de input()

Cada llamada a input() realiza trabajo adicional entre bastidores. Con unas pocas líneas no hay problema, pero los concursos pueden proporcionarle miles de líneas. ⏱️

Por qué se acumula

La ralentización se debe a la sobrecarga por llamada: las indicaciones, el vaciado y las comprobaciones de codificación se repiten en cada línea que lee.

Conozca sys.stdin

La opción más rápida es leer desde sys.stdin, el flujo de entrada sin procesar. Omite los extras prácticos que input() añade por usted.

import sys
data = sys.stdin

Lea una línea rápidamente

Use sys.stdin.readline() para obtener una sola línea rápidamente. Se comporta como input(), pero con mucha menos sobrecarga por llamada.

import sys
line = sys.stdin.readline()

Tenga en cuenta el salto de línea

readline() conserva el carácter de salto de línea final. Llame a .strip() para eliminarlo antes de analizar el valor.

n = int(sys.stdin.readline().strip())

Lea todo de una vez

Para leer lo más rápido posible, obtenga toda la entrada de una sola vez con sys.stdin.read() y después procese el texto usted mismo.

data = sys.stdin.read()

Separe todo el bloque

Después de read(), llame a .split() para convertir todos los tokens en una única lista plana. Los espacios en blanco y los saltos de línea se gestionan conjuntamente.

tokens = sys.stdin.read().split()

Reasigne input para ganar velocidad

Un truco habitual consiste en hacer que input apunte a readline, de modo que el código antiguo siga igual, pero se ejecute más rápido.

import sys
input = sys.stdin.readline

Cuándo input() es suficiente

Si un problema solo lee unas pocas líneas, el input() normal es perfectamente adecuado. Reserve la opción rápida para las entradas grandes.

Print() también tiene sobrecarga

La misma idea se aplica a la salida: muchas llamadas a print() son lentas. Lo solucionaremos en una lección posterior sobre el procesamiento por lotes.

Elija la herramienta adecuada

La regla general es: entrada pequeña, use input(); entrada grande, cambie a sys.stdin. Ajustar la herramienta a N puede ahorrarle puntos.

Comprobación rápida

Una comprobación rápida de la velocidad de lectura.

Repaso: lectura rápida

Ha conocido sys.stdin como alternativa rápida a input(): readline() para cada línea o read().split() para obtenerlo todo. Elija la herramienta según el tamaño de la entrada. ⚡

Preguntas frecuentes

¿La lección «Duelo entre input() y sys.stdin» es gratis?

Sí — el texto completo de «Duelo entre input() y sys.stdin» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Coding Interview Prep, actualiza a CoddyKit PRO. El curso de Coding Interview Prep incluye 4 lecciones en total.

¿Qué aprenderé en «Duelo entre input() y sys.stdin»?

Por qué input() simple le perjudica en pruebas grandes Practicas Coding Interview Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Coding Interview Prep?

No se requiere experiencia previa. Coding Interview Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Duelo entre input() y sys.stdin»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Coding Interview Prep?

Sí. Cada lección de Coding Interview Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Duelo entre input() y sys.stdin
  2. Analice muchos números en una línea
  3. La forma correcta de producir salidas por lotes
  4. Lea N líneas y casos límite
← Volver a Coding Interview Prep