Ce qui semble être un modèle pour la partie d'entrée standard du pro de la concurrence en python3

en premier

Récemment, j'ai commencé la programmation compétitive avec AtCoder pour améliorer mes compétences. Pour être honnête, je suis dépassé par la vitesse à laquelle les ingénieurs autour de moi peuvent le résoudre, mais c'est amusant de pouvoir le résoudre petit à petit.

La première chose qui reste bloquée au début est de savoir comment gérer l'entrée de données données. Un problème courant pour les débutants est la saisie de nombres entiers, la saisie de N nombres, etc. Du côté de l'utilisation de Python, honnêtement, je n'utilise pas tellement l'entrée standard (je ne suis pas le seul ...?) Par conséquent, je voudrais résumer les modèles personnels qui sont souvent utilisés dans le premier système d'entrée.

Entrée standard en Python

Ce que j'utilise actuellement est sys.stdin.readline (), qui lit ligne par ligne. Je lis aussi le code de saut de ligne, mais je l'utilise car il est facile à utiliser. Il est pratique d'affecter à l'avance sys.stdin.readline à input car il ne peut être utilisé qu'avec input (). Avec cette entrée, vous obtenez une chaîne.

input.py


import sys

input = sys.stdin.readline
hogehoge = input()

Si c'est un exemple d'entrée commune qui résout réellement le problème (je le fais de manière appropriée)

3
1 5
2 8
9 15

Dans de nombreux cas, il y a le nombre de lignes à saisir en premier, puis plusieurs nombres sont entrés dans ce nombre de lignes. Maintenant, traitons cela pour qu'il soit réellement facile à utiliser.

Facile à utiliser la chaîne de caractères saisie

Entrée d'un entier

Tout d'abord, le nombre entré est une chaîne de caractères (type str), changeons-le donc en int. De plus, comme la readline contient un code de saut de ligne, omettons cela également. Si vous utilisez rstrip (), il prendra le code de saut de ligne. Python peut être converti en int avec int ().

input.py


import sys

input = sys.stdin.readline
hogehoge = int(input().rstrip())

Entrée de plusieurs entiers

Cela peut être fait lorsque l'entrée ne comporte qu'un seul caractère, mais si vous le faites avec plusieurs entrées telles que les 2e, 3e et 4e lignes, une erreur sera générée. Donc, si vous en avez plus d'un, utilisez split () pour les séparer. Je suis très reconnaissant que l'utilisation de split le traite en le séparant par des espaces. Si vous utilisez split, il reviendra sous forme de liste. Par conséquent, cela ne peut pas être converti avec int () tel quel. Il existe deux méthodes, l'une consiste à utiliser l'instruction for pour convertir chaque caractère en int et l'autre à utiliser la fonction map. Personnellement, la fonction de carte est plus belle.

input.py


import sys

input = sys.stdin.readline
hogehoge = [int(i) for i in input().rstrip().split()]
#Si vous utilisez la carte
hogehoge = list(map(int, input().rstrip().split()))

Je me sens comme cela. Vous pouvez maintenant obtenir ce que vous avez tapé sous forme de liste. Cependant, il y a des moments où vous ne voulez pas tout mettre dans la liste. Parfois, vous souhaitez obtenir deux entrées avec deux variables. Dans un tel cas, faites-le comme ceci.

input.py


import sys

input = sys.stdin.readline
a, b = map(int, input().rstrip().split())

Si vous faites cela, vous pouvez même affecter à une variable. Pour ceux qui y sont plus habitués, le processus de retour avec list est écrit en lambda pour le simplifier. Veuillez jeter un œil au code source des autres.

finalement

J'ai personnellement eu des problèmes avec l'entrée standard, alors je l'ai résumé. Je suis désolé si je fais une erreur. C'est difficile à résoudre au début, mais c'est amusant quand on peut le résoudre. Profitez d'une programmation compétitive!

Recommended Posts

Ce qui semble être un modèle pour la partie d'entrée standard du pro de la concurrence en python3
Résumé de l'entrée standard de Python pouvant être utilisée dans Competition Pro
Entrée standard Python3 (compétition pro)
J'ai essayé d'implémenter ce qui semble être un outil de snipper Windows avec Python
Changer la destination de sortie standard en un fichier en Python
Comment déterminer l'existence d'un élément sélénium en Python
Comment vérifier la taille de la mémoire d'une variable en Python
Lire la sortie standard d'un sous-processus ligne par ligne en Python
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
[Python] Le rôle de l'astérisque devant la variable. Divisez la valeur d'entrée et affectez-la à une variable
[Python] Un programme qui calcule le nombre de chaussettes jumelées
[Python] Comment mettre n'importe quel nombre d'entrées standard dans la liste
Je veux colorer une partie de la chaîne Excel avec Python
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
[Python] [Word] [python-docx] Essayez de créer un modèle de phrase de mot en Python en utilisant python-docx
Django super introduction par les débutants Python! Partie 2 J'ai essayé d'utiliser les fonctions pratiques du modèle
Récupérer l'appelant d'une fonction en Python
Copiez la liste en Python
Sortie sous la forme d'un tableau python
Différentes façons de lire la dernière ligne d'un fichier csv en Python
Comment passer le résultat de l'exécution d'une commande shell dans une liste en Python
Comment compter le nombre d'éléments dans Django et sortir dans le modèle
Script Python pour obtenir une liste d'exemples d'entrée pour le concours AtCoder
Comment obtenir une liste de fichiers dans le même répertoire avec python
Comment obtenir le nombre de chiffres en Python
Découpez une partie de la chaîne à l'aide d'une tranche Python
Peut être utilisé chez les pros de la compétition! Bibliothèque standard Python
Un mémorandum sur la mise en œuvre des recommandations en Python
Pour faire l'équivalent de Ruby ObjectSpace._id2ref en Python
Note Python: Le mystère de l'attribution d'une variable à une variable
Que signifie le dernier () dans une fonction en Python?
Utilisez tkinter pour déplacer le code de sortie en tant que "A et prétendant être B" en python
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
Une histoire sur la tentative d'introduire Linter au milieu d'un projet Python (Flask)
J'ai essayé de résumer ce que l'homme fort de python fait dans le quartier des professionnels de la compétition
Découvrez la largeur apparente d'une chaîne en python
Comment déboguer une bibliothèque Python standard dans Visual Studio
Notez ce que vous voulez faire à l'avenir avec Razpai
Comment mélanger une partie de la liste Python (au hasard.shuffle)
Comment utiliser la méthode __call__ dans la classe Python
Une collection de techniques professionnelles compétitives à résoudre avec Python
Obtenir la valeur d'une clé spécifique jusqu'à l'index spécifié de la liste de dictionnaires en Python
Partie 1 de la réception de l'entrée standard
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
Obtenez le nombre d'éléments spécifiques dans la liste python
Un moyen standard de développer et de distribuer des packages en Python
Comment compter rapidement la fréquence d'apparition des caractères à partir d'une chaîne de caractères en Python?
Comment développer dans un environnement virtuel Python [Memo]
[Note] Importation de fichiers dans le répertoire parent en Python
Comment obtenir la dernière (dernière) valeur d'une liste en Python
J'ai écrit un doctest dans "J'ai essayé de simuler la probabilité d'un jeu de bingo avec Python"
Trouver les valeurs propres d'une vraie matrice symétrique en Python
Je veux ajouter un joli complément à input () en python
Comment passer le résultat de l'exécution d'une commande shell dans une liste en Python (version non bloquante)
[Python] Un programme pour trouver le nombre de pommes et d'oranges qui peuvent être récoltées