Ich bin Autodidakt und nehme an AtCoder in Python teil. Deshalb werde ich heute eine kurze Erklärung für und das Arrangement geben, was ein Punkt ist, den Leute, die angefangen haben zu lernen (Leute wie ich in der Vergangenheit), nicht verstehen werden! Ich werde auch die Geschichte wie die Eingabe mit für von AtCoder erklären. Es ist nur eine kurze Erklärung. Wenn Sie zumindest so weit wissen, erwerben Sie auch Google-Fähigkeiten (Vokabeln bei Google), googeln Sie jedes Mal verschiedene Funktionen selbst und denken Sie nach und nach daran! (Ich bin ein junger brauner Kodierer, und ich bin nicht gut in Kurznotationen. Wenn Sie eine Lüge schreiben sollten, lassen Sie es mich bitte wissen> <)
for i in range(3):
print(i)
Die for-Anweisung sieht so aus. ** Die Anzahl der Zahlen in den Klammern von "range ()" und die Verarbeitung in der for-Anweisung werden wiederholt. ** **. Das "i" in diesem wird als Schleifenzählervariable bezeichnet (ich habe es auch gegoogelt und jetzt weiß ich es. Der Name spielt keine Rolle) ** Es erhöht sich jedes Mal um 1, wenn es wiederholt wird. ** **.
Das Ergebnis der Ausführung dieses Codes ist
0
1
2
Es wird sein.
Wie Sie hier sehen können, ist das "i" der ersten Schleife 0. Dies wird später ein sehr wichtiger Punkt sein.
Sie können sehen, dass 0,1,2
insgesamt dreimal ausgegeben wird. Das liegt daran, dass ich "range (3)" geschrieben habe.
for i in range(1,3):
print(i)
Eigentlich gibt es auch so eine Schreibweise. Das Ausgabeergebnis davon ist
1
2
ist. Sie können die Regeln sehen, indem Sie sie mit dem obigen Code vergleichen.
Die for-Anweisung kann überschrieben werden. Nun, jetzt schau es dir an.
for i in range(2):
for j in range(3):
print(i,j)
Ausgabeergebnis
0 0
0 1
0 2
1 0
1 1
1 2
Es mag etwas verwirrend sein, aber Sie können sich daran gewöhnen! (Wenn Sie viele for-Anweisungen stapeln, dauert es übrigens viel Ausführungszeit.)
Grob gesagt ist eine Liste wie eine Variable, die mehrere Elemente zusammen speichern kann.
yasai = ["Karotte","Daikon","Gobo"]
Die Elemente werden durch Kommas getrennt und von "[]" umgeben. Stellen Sie sich in diesem Fall "Yasai" als ein Hotel mit drei Zimmern vor. Normalerweise hat jedes Zimmer in einem Hotel eine Zimmernummer. Das Array ist das gleiche.
Das Array ist in der Reihenfolge vom vorderen Element ** mit "0,1,2 ...." nummeriert. ** Diese Nummer heißt Index.
Ich werde es noch einmal sagen! !! ** Die Nummer des ersten Elements ist 0! !! !! ** **. Es ist das gleiche wie das vorherige "i". Es ist ein sehr wichtiger Punkt, also lasst es uns gedrückt halten.
yasai = ["Karotte","Daikon","Gobo"]
print(yasai[1])
Sie können das Element dieser Nummer auch im Array abrufen, indem Sie "Array-Name [Nummer]" wie folgt schreiben. Kennen Sie das Ergebnis der Ausführung dieses Codes?
Glaubst du, es ist eine Karotte? Es ist falsch!
Daikon
** Die Nummer des ersten Elements ist 0 **. Achten Sie also darauf, keinen Fehler zu machen.
Die Länge des Arrays kann mit "len (Array)" ermittelt werden.
yasai = ["Karotte","Daikon","Gobo"]
print(len(yasai))
Ausgabeergebnis
3
Ich benutze das auch oft. Lass uns erinnern.
Sie können jetzt Code wie diesen schreiben.
yasai = ["Karotte","Daikon","Gobo"]
for i in range(len(yasai)):
print(yasai[i])
Ausgabeergebnis ↓
Karotte
Daikon
Gobo
Wie ist das! Wenn Sie dies bisher verstanden haben, können Sie das C-Problem lösen. Wenn Sie nicht verstehen, lesen Sie bitte die obigen Informationen erneut.
Bei AtCoder denke ich, dass die Eingabe mit for aus dem C-Problem stammt. Zum Beispiel sieht es so aus ↓
Wenn man das Eingabefeld betrachtet, sieht es so aus.
Möglicherweise verstehen Sie die Bedeutung nicht. Ich habe die Bedeutung auch zuerst nicht verstanden. Besonders tiefgestellt. Aber wenn Sie das Obige verstehen können, werden Sie es sofort verstehen.
N,M = map(int,input().split())
H = list(map(int,input().split()))
for i in range(M):
A,B = map(int,input().split())
Jajan. Um eine Liste einzugeben, decken Sie einfach die übliche Eingabe von "map ()" mit "list ()" ab. In der folgenden for-Anweisung wird die Schleife M-mal gedreht und A und B werden M-mal eingegeben.
Wie Sie hier sehen können, muss Python bei der Eingabe des Arrays nicht die Länge des Arrays angeben, daher wird N bei der Eingabe nicht wie M verwendet. Es ist einfach.
In der Eingabespezifikation (siehe graues Bild) gilt "N == len (H)".
Einer der frustrierendsten Fehler für Anfänger sind nicht ordnungsgemäße Referenzen.
yasai = ["Karotte","Daikon","Gobo"]
print(yasai[3])
Nun, ich habe diesen Code. Wissen Sie, was ausgegeben wird?
In dem unwahrscheinlichen Fall, dass jemand "Gobo" denkt, gehen Sie zurück zur obigen Seite und denken Sie an meine Worte.
Die Antwort lautet "nichts wird ausgegeben". Ich erhalte eine Fehlermeldung.
Traceback (most recent call last):
File "Main.py", line 2, in <module>
print(yasai[3])
IndexError: list index out of range
Ich bekomme diesen Fehler.
Selbst wenn Sie kein Englisch sprechen können, ist es überhaupt nicht schwierig, wenn Sie es ruhig lesen.
In Zeile 2 können Sie sehen, dass der Code in der zweiten Zeile falsch ist.
Siehe IndexError: Listenindex außerhalb des Bereichs
. Dies ist der Indexfehler, den ich (am häufigsten) hasse, ** Out-of-Array-Referenz **.
Mit anderen Worten, wenn Sie diese Fehlermeldung lesen, können Sie sehen, dass "** Der Index des Codes" print (yasai [3]) "in der zweiten Zeile bezieht sich auf die Außenseite des Arrays **"!
Diese Referenz außerhalb der Reihenfolge mag auf den ersten Blick einfach erscheinen, aber wenn der Code komplexer wird, wird sie zu einer Referenz für Horror außerhalb der Reihenfolge in der Parade-Hölle **. Achtung.
Wenn Sie das C-Problem mit einer bestimmten Geschwindigkeit lösen können, können Sie definitiv einen braunen Codierer anstreben! Python ist eine Sprache, die Kurzcode zum Schreiben enthält und sich zum einfachen schnellen Lösen eignet. Vor allem ist sie leicht zu lesen, daher habe ich viel Zeit zum Schreiben gebraucht, aber es kann relativ schnell gehen, bis sie braun wird.
Das größte Problem ist die Ausführungszeit (der Wettbewerbsprofi hat eine Begrenzung der Ausführungszeit, schreiben wir den Code so effizient wie möglich, siehe Web für Details), aber wenn Sie sich an die verschiedenen Berechnungen gewöhnen Bis zu einem gewissen Grad kann man es fühlen.
**Bitte gib dein bestes! ** **.
Recommended Posts