__ * Dieser Artikel richtet sich an Personen, die Probleme beim Verstehen von Standardeingaben wie AtCoder und Paiza haben. __ __
Es gibt viele Arten und es mag schwierig erscheinen, aber in Wirklichkeit wählen wir nur die aus, die der Art der Eingabe entspricht.
Zuerst müssen Sie sich überhaupt nicht daran erinnern, also gewöhnen wir uns Stück für Stück daran und überprüfen es jedes Mal.
Hinweis) __ Dieser Artikel ist für Anfänger. __ Da wir dem Verständnis von Anfängern Vorrang einräumen, sind einige unzureichende Formulierungen usw. enthalten, aber wir bedanken uns für Ihr Verständnis.
In Atcoder- und Paiza-Problemen hat der Code, der die Standardeingabe akzeptiert, zwei Hauptüberlegungen:
Von diesen wird der zweite allmählich klar, wenn Sie das Problem wiederholt lösen, sodass sich dieser Artikel auf den ersten konzentriert.
Eingang
abc #String
12 #String(Auch wenn es wie eine Zahl aussieht, wird es so wie es ist als Zeichenfolge behandelt)
Code
source.py
a = input()
a = int(input())
output.py
abc #String
12 #Zahlen
__input () ist eine Funktion, die Eingaben als einzeilige Zeichenfolge empfängt. __ __ (Da a in a = input () ein Variablenname ist, können Sie ihn frei ändern.) In a = input () wird der von input () empfangene String abc in der Variablen a gespeichert.
__int () ist eine Funktion, die das Innere von () in eine Zahl (Ganzzahl) konvertiert. __ __ Wenn Sie Nummern erhalten möchten, verwenden Sie __int () __. Int (input ()) konvertiert das, was von input () (immer noch eine Zeichenfolge) empfangen wurde, in eine Ganzzahl von int ().
Eingang
abc
Code
source.py
list_a = list(input())
output.py
['a', 'b', 'c']
Sie können eine Zeichenfolge mit __list () __ in eine Liste konvertieren. Es ist nicht sehr häufig, aber es ist einfach, also lasst es uns verfügbar machen.
Eingang
apple lemon grape
Code
source.py
list_a = input().split()
red, yellow, purple = input().split()
output.py
['apple', 'lemon', 'grape']
apple #print(red)
__split () ist eine Funktion, die eine Zeichenfolge in eine Liste aufteilt. __ __ Wenn mehrere Eingaben durch Leerzeichen getrennt sind, kann split () verwendet werden, um jedes Element zu einer Liste zu machen. Wenn Sie sie einzeln empfangen möchten, müssen Sie so viele Variablen wie möglich vorbereiten. (Wenn nicht genügend Zahlen vorhanden sind, tritt ein Fehler auf.)
Eingang
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 () ist eine Funktion, die eine andere Funktion auf eine Liste oder ähnliches anwendet. __ (sehr vereinfacht erklärt) Verwenden Sie map () wie map (Funktion, die Sie verwenden möchten, Liste der Ziele usw.). Es ist ein wenig kompliziert, also lassen Sie uns den Prozess der Liste (map (int, input (). Split ())) aufschlüsseln.
Sie können sie auch einzeln in Variablen empfangen, anstatt sie wie mit Zeichenfolgen aufzulisten.
Eingang
3
apple
lemon
grape
Code
source.py
n = int(input())
list_a = [input() for i in range(n)]
output.py
['apple', 'lemon', 'grape']
Bei mehrzeiligen Eingaben wird häufig zuerst die Anzahl der Eingabezeilen angegeben. Dieser Code empfängt n Eingabezeilen und speichert dann n Eingabezeilen (diesmal 3 Zeilen) in einer Liste.
Das Schreiben wie [input () für i in range (n)] heißt __list Inclusion notation __. Es wiederholt input () n Mal und speichert es in der Reihenfolge in der Liste. Es wird oft verwendet, weil es die Liste einfach macht, aber es sieht kompliziert aus, bis Sie sich daran gewöhnt haben, sodass Sie nicht lernen müssen, wie es funktioniert. (Wenn Sie mehrmals an dem Problem arbeiten, werden Sie es natürlich verstehen.)
Der obige Code hat den gleichen Inhalt wie der folgende Code.
source.py
n = int(input())
list_a = []
for i in range(n):
kudamono = input()
list_a.append(kudamono)
Eingang
3 #Repräsentiert die Anzahl der Eingabezeilen
1
2
3
Code
source.py
n = int(input())
list_a = [int(input()) for i in range(n)]
output.py
[1, 2, 3]
Es ist in Ordnung, wenn Sie den input () - Teil des vorherigen Codes als int (input ()) festlegen und jede Eingabe in eine Zahl konvertieren.
Eingang
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])
Wenn es mehrere Zeilen mit mehreren Eingaben wie diesen gibt, funktioniert es in den meisten Fällen, wenn Sie sie als zweidimensionales Array empfangen. Als Inhalt von "Mehrere Eingaben pro Zeile" ist input (). Split () eine Liste für sich. Es ist daher leicht vorstellbar, wenn Sie der Meinung sind, dass die Eingabe einer großen list_a-Liste dreimal wiederholt wird. Überlegen.
Eingang
3 #Repräsentiert die Anzahl der Eingabezeilen
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]]
Es sieht kompliziert aus, aber ich wiederhole die Arbeit, wenn die Eingabe eine Zeile ist. Sie können sehen, dass dies auch die Arbeit von "mehreren Eingaben pro Zeile (wenn Sie Zahlen machen möchten)" für die Anzahl der Eingabezeilen wiederholt.
Wie eingangs erwähnt, muss man nicht versuchen, sich an alles auf einmal zu erinnern. __ __ Selbst beim Kopieren und Einfügen werden Sie natürlich in den Sinn kommen, wenn Sie verschiedene Probleme ausprobieren und Ihr Sprachverständnis vertiefen. Ich hoffe diese Seite hilft dir.
Wenn Sie etwas schwer zu verstehen finden, lassen Sie es bitte im Kommentarbereich.
Recommended Posts