Die Eingabe- und Ausgabeteile von Tipps, die Sie beim Programmieren in Python2 kennen sollten wurden aufgeteilt.
Ein Beispiel für die Eingabe- / Ausgabemethode für die wettbewerbsfähige Programmierung in Python. Der Eingabe- / Ausgabecode ist oft eine Hürde beim ersten Erlernen einer Sprache, aber wenn Sie sich daran erinnern, ist es ein Muster, daher möchte ich mich schnell daran erinnern.
Die Python-Version ist ** 2.7.5 ** (In Python3 unterscheiden sich Spezifikationen wie Eingabe und Ausgabe erheblich, daher wird empfohlen, auf andere Artikel zu verweisen).
Empfangen der Standardeingabe 1-Qiita
input
S
S ist eine Zeichenkette.
S = raw_input()
input
N
N ist eine Ganzzahl oder Gleitkommazahl.
N = input()
input
A B C
A, B und C sind alle Zeichenketten.
l = raw_input().split()
print l[0] #Der Wert von A wird ausgegeben
print l[1] #Der Wert von B wird ausgegeben
print l[2] #Der Wert von C wird ausgegeben
split ()
teilt den String in eine durch Leerzeichen getrennte Liste.
input
A B C
A, B und C sind alle Ganzzahlen oder Gleitkommazahlen.
Wenn A, B, C alle ganzen Zahlen sind
l = map(int, raw_input().split())
print l[0] # A
print l[1] # B
print l[2] # C
Kurz gesagt, die im Zeichenfolgentyp empfangene Eingabe wird durch ein Leerzeichen geteilt und der Liste zugewiesen, und jedes Element wird dem Ganzzahltyp zugeordnet.
Die Anzahl der Elemente kann den Eingabedaten zugewiesen werden, aber im Fall von Python spielt es keine Rolle, selbst wenn es nicht verwendet wird.
Für Gleitkommazahlen
l = map(float, raw_input().split())
Beachten Sie, dass der Wert abgeschnitten wird, wenn Sie "int" für Gleitkommazahlen verwenden.
A, B, C = map(int, raw_input().split())
print A # A
print B # B
print C # C
Wenn die Anzahl der Elemente in der Liste mit der Anzahl auf der linken Seite übereinstimmt, kann jedes Element der Liste jeder Variablen auf der linken Seite zugewiesen werden. Es scheint, dass diese Art der Zuweisung als "entpackte Zuweisung" bezeichnet wird.
Bei wettbewerbsfähiger Programmierung sollte sie nur verwendet werden, wenn die Anzahl der Eingabeelemente klar und gering ist.
Ich sehe es nicht sehr oft, aber wenn eine Zeile eine Mischung aus Zeichenfolgen und Ganzzahlen enthält, nehmen Sie vorerst eine Zeile als Zeichenfolge und konvertieren Sie sie später mit "int ()", "float ()" usw.
input
N
a1
a2
a3
...
aN
a1, a2, ..., aN sind N ganze Zahlen.
N = input()
a = []
for i in range(N):
a.append(input())
print a # [a1, a2, a3, ..., aN]
Es ist in Ordnung.
@ zakuro9715 hat mich gelehrt.
Dieser Code kann unter Verwendung der Listeneinschlussnotation auch wie folgt ausgedrückt werden. Der N-Zeilen-Eingang kann in eine Zeile geschrieben werden und ist wunderschön.
N = input()
a = [input() for i in range(N)]
print a # [a1, a2, a3, ..., aN]
Ein Format, das häufig in Aizu Online Judge (AOJ) verwendet wird.
input
a1
a2
a3
...
-1
a1, a2, ... sind alle ganze Zahlen. -1 steht für das Ende der Eingabe.
a = []
while True:
n = input()
if n == -1:
break
a.append(n)
print a # [a1, a2, a3, ..., aN]
Ich sehe das auch gelegentlich bei AOJ. Es ist schwer zu debuggen und ich persönlich mag es nicht.
input
a1
a2
a3
...
(EOF)
a1, a2, ... sind alle ganze Zahlen. Lesen Sie, bis EOF eintrifft.
import sys
a = []
for line in sys.stdin:
a.append(int(line))
print a # [a1, a2, a3, ...]
Ein zusammenfassendes Gefühl bisher.
input
N M
a11 a12 a13 ... a1M
a21 a22 a23 ... a2M
a31 a32 a33 ... a3M
...
aN1 aN2 aN3 ... aNM
a11, a12, ..., aNM sind ganze Zahlen.
N, M = map(int, raw_input().split())
a = []
for i in range(M):
a.append(map(int, raw_input().split()))
print a
# [[a11, a12, a13, ..., a1M]
# [a21, a22, a23, ..., a2M]
# ...
# [aN1, aN2, aN3, ..., aNM]]
Vielleicht ist es okay, wenn Sie das unten halten.
Ich habe von @ t2y gelernt.
Durch die Verwendung eines Generators ist es möglich, Eingaben über mehrere Leitungen gut zu empfangen.
Zum Beispiel
input
a1
a2
a3
...
(EOF)
a1, a2, ... sind alle Zeichenketten. Lesen Sie, bis EOF eintrifft.
Wenn das Format wie ist
def get_input():
while True:
try:
yield ''.join(raw_input())
except EOFError:
break
if __name__ == '__main__':
a = list(get_input()) # [a1, a2, a3, ...]
Machen.
Außerdem ist der Inhalt von get_input ()
,
def get_input():
while True:
try:
s = raw_input()
if s == '-1':
break
yield ''.join(s)
except EOFError:
break
Durch Ändern von ist es möglich, eine etwas komplizierte Eingabe wie "Lesen" -1 "oder bis zum Ende der Eingabe" zu empfangen.
output
A
Fügen Sie am Ende einen Zeilenumbruch ein.
print A
Es können sowohl ein ganzzahliger Typ als auch ein Zeichenfolgentyp ausgegeben werden. Darüber hinaus kann das Debuggen von Listen und Wörterbüchern wie bei der print-Anweisung erfolgen.
Um ehrlich zu sein, habe ich es nicht gesehen, aber um zu studieren.
output
A
Enthält keinen Zeilenumbruch am Ende.
import sys
sys.stdout.write(A)
Ich sehe das oft.
output
A B C
Fügen Sie am Ende einen Zeilenumbruch ein.
print A, B, C
Wenn Sie in der print-Anweisung nach der Variablen ,
setzen, wird der Zeilenumbruch in ein Leerzeichen mit halber Breite konvertiert.
Python-Tipps: Ich möchte eine Zeichenfolge ohne Zeilenumbrüche ausgeben - Leben mit Python
output
A,B,C
A, B und C sind alle Zeichenketten. Fügen Sie am Ende einen Zeilenumbruch ein.
print ','.join([A, B, C])
join ()
entspricht der umgekehrten Operation von split ()
und gibt die Verkettung jedes Elements der Liste der Argumentzeichenfolgen mit der Empfängerzeichenfolge zurück.
Beachten Sie, dass alle Elemente der Liste vom Typ string sein müssen.
Wenn hier beispielsweise A, B und C ganze Zahlen sind,
print ','.join(map(str, [A, B, C]))
Ebenso wird jedes Element durch "str ()" in eine Zeichenfolge konvertiert und dann verbunden.
Möglicherweise möchten Sie in einem freien Format wie der Funktion printf in C ++ ausgeben.
output
Case 1: A B
Sowohl A als auch B sind ganze Zahlen. Fügen Sie am Ende einen Zeilenumbruch ein.
print 'Case 1: {0} {1}'.format(A, B)
format ()
nimmt ein Argument variabler Länge und gibt eine Zeichenfolge zurück, die den Wert des i-ten Arguments in '{i}' enthält.
Die meisten Dinge, die printf tun kann, wie z. B. die Radix-Konvertierung und die Ausrichtung der Ziffern zum Zeitpunkt der Ausgabe, können auch mit format ()
ausgeführt werden.
Weitere Informationen finden Sie unter Referenz.
Recommended Posts