__ * 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.
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.
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())
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 ().
contribution
abc
code
source.py
list_a = list(input())
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.
contribution
apple lemon grape
code
source.py
list_a = input().split()
red, yellow, purple = input().split()
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.)
contribution
1 2 3
code
source.py
list_a = list(map(int,input().split()))
x, y, z = map(int,input().split())
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 ())).
Vous pouvez également recevoir des variables individuelles au lieu de les lister comme vous le feriez avec des chaînes.
contribution
3
apple
lemon
grape
code
source.py
n = int(input())
list_a = [input() for i in range(n)]
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)
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)]
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.
contribution
3
a b
c d
e f
code
source.py
n = int(input())
list_a = [input().split() for i in range(n)]
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.
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)]
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.
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