[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)

introduction

__ * Cet article est destiné à ceux qui ont du mal à comprendre les entrées standard telles que AtCoder et paiza. __

Il existe de nombreux types et cela peut sembler difficile, mais en réalité, nous ne faisons que sélectionner celui qui correspond au type d'entrée.

Au début, vous n'avez pas besoin de vous en souvenir du tout, alors habituons-nous petit à petit, en vérifiant à chaque fois.

Note) __ Cet article est destiné aux débutants. __ Puisque nous accordons la priorité à la compréhension des débutants, certaines formulations inadéquates, etc. sont incluses, mais nous apprécions votre compréhension.

Quel code utiliser

Dans les problèmes Atcoder et Paiza, le code qui accepte l'entrée standard a deux considérations principales:

Parmi ceux-ci, le second deviendra progressivement clair à mesure que vous résolvez le problème à plusieurs reprises, cet article se concentrera donc sur le premier.

Une entrée ligne

contribution

abc  #Chaîne
12   #Chaîne(Même s'il ressemble à un nombre, il sera traité comme une chaîne de caractères tel quel)

code

source.py


a = input()
a = int(input())

print

output.py


abc  #Chaîne
12   #Nombres

__input () est une fonction qui reçoit l'entrée sous la forme d'une chaîne d'une ligne. __ (Puisque a dans a = input () est un nom de variable, vous pouvez le changer librement.) Dans a = input (), la chaîne abc reçue par input () est stockée dans la variable a.

__int () est une fonction qui convertit l'intérieur de () en un nombre (entier). __ Si vous souhaitez recevoir des numéros, utilisez __int () __. Int (input ()) convertit ce qui a été reçu par input () (toujours une chaîne) en un entier par int ().

Chaîne de caractères de développement → liste

contribution

abc

code

source.py


list_a = list(input())

print

output.py


['a', 'b', 'c']

Vous pouvez convertir une chaîne en liste avec __list () __. Ce n'est pas très fréquent, mais c'est facile, alors mettons-le à disposition.

Plusieurs entrées par ligne

contribution

apple lemon grape

code

source.py


list_a = input().split()
red, yellow, purple = input().split()

print

output.py


['apple', 'lemon', 'grape']
apple #print(red)

__split () est une fonction qui divise une chaîne en une liste. __ Si plusieurs entrées sont séparées par des espaces, split () peut être utilisé pour faire de chaque élément une liste. Si vous souhaitez les recevoir une par une, vous devez préparer autant de variables qu'il y a. (S'il n'y a pas assez de nombres, une erreur se produira.)

Si vous souhaitez créer des numéros de développement

contribution

1 2 3

code

source.py


list_a = list(map(int,input().split()))
x, y, z = map(int,input().split())

print

output.py


[1, 2, 3]
1 #print(x)

__map () est une fonction qui applique une autre fonction à une liste ou autre. __ (expliqué de manière très simplifiée) Utilisez map () comme map (fonction que vous souhaitez utiliser, liste de cibles, etc.). C'est un peu compliqué, alors décomposons le processus de list (map (int, input (). Split ())).

  1. Tout d'abord, prenez l'entrée avec input () ('1 2 3') et divisez-la avec split () (['1', '2', '3']).
  2. map ( fonction, liste, etc. __) __ applique "fonction" à "liste, etc." Cette fois, appliquez int () à input (). Split () --- (['1', '2', '3']) pour en faire un nombre.
  3. Cependant, map () renvoie un objet de carte comme résultat et ne peut pas être manipulé tel quel.
  4. Afin de pouvoir le gérer, je l'ai finalement converti en liste. (Si vous ne le faites pas, vous verrez quelque chose comme un objet de carte à 0x7fbff01922e8.)

Vous pouvez également recevoir des variables individuelles au lieu de les lister comme vous le feriez avec des chaînes.

Plusieurs lignes en entrée une pour chaque ligne

contribution

3
apple
lemon
grape

code

source.py


n = int(input())
list_a = [input() for i in range(n)]

print

output.py


['apple', 'lemon', 'grape']

Pour une entrée multiligne, le nombre de lignes d'entrée est souvent donné en premier. Ce code reçoit n lignes d'entrée puis stocke n lignes d'entrée (3 lignes cette fois) dans une liste.

L'écriture comme [input () for i in range (n)] est appelée notation d'inclusion __list __. Il répète input () n fois et le stocke dans l'ordre dans la liste. Il est souvent utilisé car cela simplifie la liste, mais cela semble compliqué jusqu'à ce que vous vous y habituiez, vous n'avez donc pas à vous forcer à apprendre comment cela fonctionne. (Si vous travaillez plusieurs fois sur le problème, vous le comprendrez naturellement.)

Le code ci-dessus a le même contenu que le code suivant.

source.py


n = int(input())
list_a = []

for i in range(n):
    kudamono = input()
    list_a.append(kudamono)

Si vous souhaitez créer des numéros de développement

contribution

3 #Représente le nombre de lignes d'entrée
1
2
3

code

source.py


n = int(input())
list_a = [int(input()) for i in range(n)]

print

output.py


[1, 2, 3]

Ce n'est pas grave si vous définissez la partie input () du code précédent comme int (input ()) et convertissez chaque entrée en un nombre.

L'entrée de plusieurs lignes est multiple pour chaque ligne

contribution

3
a b
c d
e f

code

source.py


n = int(input())
list_a = [input().split() for i in range(n)]

print

output.py


[['a', 'b'], ['c', 'd'], ['e', 'f']]
['c', 'd']  #print(list_a[1])
e           #print(list_a[2][0]) 

Lorsqu'il y a plusieurs lignes de plusieurs entrées comme celle-ci, dans la plupart des cas, cela fonctionnera si vous les recevez sous forme de tableau à deux dimensions. Comme le contenu de "Entrées multiples par ligne", input (). Split () est une liste en soi, il est donc facile d'imaginer si vous pensez que le travail de saisie d'une grande liste list_a est répété 3 fois. pense.

Si vous souhaitez créer des numéros de développement

contribution

3 #Représente le nombre de lignes d'entrée
1 2
3 4
5 6

code

source.py


n = int(input())
list_a = [list(map(int,input().split())) for i in range(n)]

print

output.py


[[1, 2], [3, 4], [5, 6]]

Cela semble compliqué, mais je répète le travail lorsque l'entrée est une ligne. Vous pouvez voir que cela répète également le travail de "plusieurs entrées par ligne (lorsque vous voulez faire des nombres)" pour le nombre de lignes d'entrée.

finalement

Comme je l'ai mentionné au début, vous n'avez pas à essayer de vous souvenir de tout en même temps. __ Même avec le copier-coller au début, si vous essayez divers problèmes et approfondissez votre compréhension de la langue, vous viendrez naturellement à l'esprit. J'espère que cette page vous aidera.

Si vous trouvez quelque chose de difficile à comprendre, veuillez le laisser dans la section des commentaires.

Recommended Posts

[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
Résumé de diverses instructions for en Python
Ensemble d'entrées standard Atcoder pour les débutants (python)
[Introduction pour les débutants] Manipuler MySQL avec Python
Histoire de base de l'héritage en Python (pour les débutants)
Entrée standard / résumé / python, ruby
Récapitulatif des outils d'exploitation de l'interface graphique Windows avec Python
Résumé des méthodes de prétraitement pour les débutants en Python (trame de données Pandas)
Analyse des données en Python Résumé des sources que les débutants devraient d'abord consulter
Entrée standard Python3 pour une programmation compétitive
Représentation matricielle avec entrée standard Python
Exécutez unittest en Python (pour les débutants)
[Pour les débutants des professionnels de la compétition] Trois méthodes de saisie à retenir lors du démarrage de la programmation de compétition avec Python
Un bref résumé de Graphviz en python (expliqué uniquement pour mac)
L'histoire de la création d'un pilote standard pour db avec python.
Résumé de l'entrée standard de Python pouvant être utilisée dans Competition Pro
INSÉRER dans MySQL avec Python [Pour les débutants]
[Python] Compte-rendu de la réunion d'étude pour les débutants (7/15)
Conseils pour gérer les binaires en Python
Traiter plusieurs listes avec for en Python
UnicodeEncodeError lutte avec la sortie standard de python3
[Python] Lire des images avec OpenCV (pour les débutants)
Résumé des méthodes intégrées, etc. de la liste Python
Résumé des techniques utiles de Scrapy en Python
Création WebApi avec Python (création CRUD) Pour les débutants
[Pour les débutants] Essayez le web scraping avec Python
[Python] Entrée standard
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (5) [Introduction au fonctionnement de la base de données avec le shell Django]
Résumé des entrées standard
Résumé de base du scraping avec des requêtes que les débutants peuvent absolument comprendre [Python]
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (2) [Création de projet]
Explication de la création d'une application pour afficher des images et dessiner avec Python
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (1) [Construction de l'environnement]
Notes pour les débutants en Python ayant de l'expérience dans d'autres langues 12 (+1) éléments par fonction
Raisonnement causal et recherche causale par Python (pour les débutants)
Résumé de la façon d'importer des fichiers dans Python 3
Résumé de l'utilisation de MNIST avec Python
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ① ~
Essayez de calculer RPN avec Python (pour les débutants)
Compréhension facile de Python pour les tableaux et (pour les super débutants)
[Python] Résumé des opérations sur les fichiers S3 avec boto3
Résumé des tableaux Python fréquemment utilisés (pour moi-même)
Décomposition en facteurs premiers ver.2 des entiers entrés en Python
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ② ~
Explication de la distance d'édition et de l'implémentation en Python
Résumé des opérations Excel utilisant OpenPyXL en Python
Paramètres pour démarrer avec MongoDB avec python
Compétitif Pro avec Python et VSCode-Simplification de l'entrée standard et automatisation du jugement de cas d'échantillons-
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (3) [Création d'application / configuration de la base de données]
Séquence de touches en Python
Manuel python pour les débutants
Résumé des arguments Python
Séquence de touches en Python
[Python] À propos de l'entrée standard
OpenCV pour les débutants en Python
Résumé des entrées / sorties standard
Janken Poi en Python pour les débutants (réponses et explications)
[Pour les débutants] Comment utiliser la commande say avec python!
Exemple de code spécifique pour travailler avec SQLite3 en Python
Entrée clé qui n'attend pas l'entrée clé en Python