Vor kurzem habe ich mit AtCoder angefangen, wettbewerbsfähig zu programmieren, um meine Fähigkeiten zu verbessern. Um ehrlich zu sein, ich bin überwältigt von der Geschwindigkeit, mit der die Ingenieure um mich herum es lösen können, aber es macht Spaß, es Stück für Stück lösen zu können.
Das erste, was stecken bleibt, wenn Sie gerade erst anfangen, ist, wie Sie mit der Eingabe bestimmter Daten umgehen. Ein häufiges Problem für Anfänger ist die Eingabe von Ganzzahlen, der Eingabe von N Zahlen usw. Ehrlich gesagt verwende ich bei der Verwendung von Python nicht so oft Standardeingaben (ich bin nicht der einzige ...?) Daher möchte ich die persönlichen Vorlagen zusammenfassen, die häufig im ersten Eingabesystem verwendet werden.
Was ich tatsächlich benutze, ist sys.stdin.readline (), das Zeile für Zeile liest. Ich habe auch den Zeilenvorschubcode gelesen, aber ich benutze ihn, weil er einfach zu bedienen ist. Es ist praktisch, sys.stdin.readline der Eingabe im Voraus zuzuweisen, da es nur mit input () verwendet werden kann. Mit dieser Eingabe erhalten Sie eine Zeichenfolge.
input.py
import sys
input = sys.stdin.readline
hogehoge = input()
Wenn es ein Beispiel für eine gemeinsame Eingabe ist, die das Problem tatsächlich löst (ich mache es angemessen)
3
1 5
2 8
9 15
In vielen Fällen muss zuerst die Anzahl der Zeilen eingegeben werden, und dann werden mehrere Nummern in diese Anzahl der Zeilen eingegeben. Lassen Sie uns dies nun so verarbeiten, dass es tatsächlich einfach zu bedienen ist.
Zunächst ist die eingegebene Zahl eine Zeichenfolge (str-Typ). Ändern Sie sie daher in int. Da die Readline einen Zeilenvorschubcode enthält, lassen wir diesen ebenfalls weg. Wenn Sie rstrip () verwenden, wird der Zeilenvorschubcode verwendet. Python kann mit int () in int konvertiert werden.
input.py
import sys
input = sys.stdin.readline
hogehoge = int(input().rstrip())
Dies kann erfolgen, wenn die Eingabe nur aus einem Zeichen besteht. Wenn jedoch mehrere Eingaben wie die 2., 3. und 4. Zeile vorgenommen werden, wird ein Fehler ausgegeben. Wenn Sie also mehr als eine haben, trennen Sie sie mit split (). Ich bin sehr dankbar, dass die Verwendung von split es verarbeitet, indem es durch Leerzeichen getrennt wird. Wenn Sie split verwenden, wird es als Liste zurückgegeben. Daher kann dies nicht mit int () konvertiert werden. Es gibt zwei Methoden: Die eine besteht darin, die for-Anweisung zu verwenden, um jedes Zeichen in int zu konvertieren, und die andere darin, die Map-Funktion zu verwenden. Persönlich ist die Kartenfunktion schöner.
input.py
import sys
input = sys.stdin.readline
hogehoge = [int(i) for i in input().rstrip().split()]
#Wenn Sie Karte verwenden
hogehoge = list(map(int, input().rstrip().split()))
Ich fühle mich so. Jetzt können Sie das, was Sie eingegeben haben, als Liste abrufen. Es gibt jedoch Zeiten, in denen Sie nicht alles in die Liste aufnehmen möchten. Manchmal möchten Sie zwei Eingaben mit zwei Variablen erhalten. In einem solchen Fall machen Sie es so.
input.py
import sys
input = sys.stdin.readline
a, b = map(int, input().rstrip().split())
In diesem Fall können Sie sogar einer Variablen zuweisen. Für diejenigen, die eher daran gewöhnt sind, ist der Prozess der Rückgabe mit Liste in Lambda geschrieben, um es zu vereinfachen. Bitte schauen Sie sich den Quellcode anderer an.
Ich persönlich hatte Probleme mit der Standardeingabe und habe sie zusammengefasst. Es tut mir leid, wenn ich einen Fehler mache. Anfangs ist es schwer zu lösen, aber es macht Spaß, wenn man es lösen kann. Bitte genießen Sie wettbewerbsfähige Programmierung!