Tipps (Eingabe / Ausgabe), die Sie beim Programmieren von Wettbewerben mit Python2 kennen sollten

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).

Referenz

Empfangen der Standardeingabe 1-Qiita

Geben Sie eine Zeichenfolge pro Zeile ein

Format

input


S

S ist eine Zeichenkette.

Eingang

S = raw_input()

Geben Sie eine Ganzzahl oder eine Gleitkommazahl in eine Zeile ein

Format

input


N

N ist eine Ganzzahl oder Gleitkommazahl.

Eingang

N = input()

Geben Sie mehrere Zeichenfolgen ein, die durch Leerzeichen in einer Zeile getrennt sind

Format

input


A B C

A, B und C sind alle Zeichenketten.

Eingang

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.

Geben Sie mehrere Ganzzahlen oder Gleitkommazahlen ein, die durch Leerzeichen in einer Zeile getrennt sind

Format

input


A B C

A, B und C sind alle Ganzzahlen oder Gleitkommazahlen.

Eingang

Wenn Sie alle Variablen einer Liste zuweisen möchten

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.

Wenn Sie jede in einer separaten Variablen speichern möchten

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.

Geben Sie für jede der mehreren (N) Zeilen eine Ganzzahl ein

Format

input


N
a1
a2
a3
...
aN

a1, a2, ..., aN sind N ganze Zahlen.

Eingang

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]

Geben Sie für jede der mehreren Zeilen eine Ganzzahl ein (bis eine bestimmte Ganzzahl akzeptiert wird).

Ein Format, das häufig in Aizu Online Judge (AOJ) verwendet wird.

Format

input


a1
a2
a3
...
-1

a1, a2, ... sind alle ganze Zahlen. -1 steht für das Ende der Eingabe.

Eingang

a = []
while True:
    n = input()
    if n == -1:
        break
    a.append(n)
print a # [a1, a2, a3, ..., aN]

Geben Sie für jede der mehreren Zeilen eine Ganzzahl ein (bis zum Ende der Eingabe).

Ich sehe das auch gelegentlich bei AOJ. Es ist schwer zu debuggen und ich persönlich mag es nicht.

Format

input


a1
a2
a3
...
(EOF)

a1, a2, ... sind alle ganze Zahlen. Lesen Sie, bis EOF eintrifft.

Eingang

import sys

a = []
for line in sys.stdin:
    a.append(int(line))
print a # [a1, a2, a3, ...]

Geben Sie M ganze Zahlen in jede der mehreren (N) Zeilen ein

Ein zusammenfassendes Gefühl bisher.

Format

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.

Eingang

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.

Allzweckeingang mit einem Generator

Ich habe von @ t2y gelernt.

Durch die Verwendung eines Generators ist es möglich, Eingaben über mehrere Leitungen gut zu empfangen.

Zum Beispiel

Format

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.

Ausgabe

Ausgabe 1 Variable (mit Zeilenumbruch)

Format

output


A

Fügen Sie am Ende einen Zeilenumbruch ein.

Ausgabe

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.

Ausgabe 1 Variable (kein Zeilenumbruch)

Um ehrlich zu sein, habe ich es nicht gesehen, aber um zu studieren.

Format

output


A

Enthält keinen Zeilenumbruch am Ende.

Ausgabe

import sys

sys.stdout.write(A)

Mehrere durch Leerzeichen getrennte Variablen ausgeben

Ich sehe das oft.

Format

output


A B C

Fügen Sie am Ende einen Zeilenumbruch ein.

Ausgabe

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

Mehrere durch Kommas getrennte Variablen ausgeben

Format

output


A,B,C

A, B und C sind alle Zeichenketten. Fügen Sie am Ende einen Zeilenumbruch ein.

Ausgabe

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.

Ausgabe nach Format

Möglicherweise möchten Sie in einem freien Format wie der Funktion printf in C ++ ausgeben.

Format (Beispiel)

output


Case 1: A B

Sowohl A als auch B sind ganze Zahlen. Fügen Sie am Ende einen Zeilenumbruch ein.

Ausgabe

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

Tipps (Eingabe / Ausgabe), die Sie beim Programmieren von Wettbewerben mit Python2 kennen sollten
Tipps zum Programmieren von Wettbewerben mit Python2
Tipps (Kontrollstruktur), die Sie beim Programmieren von Wettbewerben mit Python2 kennen sollten
Tipps (Datenstruktur), die Sie beim Programmieren von Wettbewerben mit Python2 kennen sollten
Tipps, die Sie beim Programmieren in Python2 kennen sollten (nützliche Bibliothek)
Tipps zum Programmieren von Wettbewerben mit Python2 (Andere Sprachspezifikationen)
Wettbewerbsfähige Programmierung mit Python
Python3-Standardeingabe für wettbewerbsfähige Programmierung
Tipps zur Eingabe / Ausgabe von Python-Dateien
Eingabe / Ausgabe mit Python (Python-Lernnotiz ⑤)
Kenntnisse der linearen Algebra, die Sie bei der KI kennen sollten
Wettbewerbsprogrammierung mit Python Lokale Umgebungseinstellungen
Persönliche Tipps, wenn Sie verschiedene Dinge mit Python 3 tun
[Python] [vscode] Wenn Sie sich über Space-Tab-Mix ärgern
Lösen mit Python [100 frühere Fragen, die Anfänger und Fortgeschrittene lösen sollten] (053 --055 Dynamische Planungsmethode: Andere)
Sie sollten wissen, ob Sie Python verwenden! 10 nützliche Bibliotheken
Was verwenden Sie beim Testen mit Python?
[Python] Erstellen einer Umgebung für die Wettbewerbsprogrammierung mit Atom (input () kann verwendet werden!) [Mac]
Japanische Ausgabe beim Umgang mit Python im Visual Studio
3. 3. KI-Programmierung mit Python
Python-Programmierung mit Atom
Python-Eingabe und Ausgabe
Python-Audioeingabe / -ausgabe
Programmieren mit Python Flask
Ich kenne? Datenanalyse mit Python oder Dingen, die Sie mit numpy verwenden möchten, wenn Sie möchten
[Tipps] Behebung des Fehlers, der auftritt, wenn versucht wird, Python 3-Serien unter 3.5.3 mit pyenv zu installieren
Verwenden Sie ein Makro, das beim Speichern von Python mit vscode ausgeführt wird
Programmieren mit Python und Tkinter
Probieren Sie die Python-Ausgabe mit Haxe 3.2 aus
Ich habe versucht, so viel wie möglich über GIL herauszufinden, das Sie wissen sollten, wenn Sie parallel mit Python arbeiten
Empfangen von Standardeingabetipps @ python
[Tipps] Behandle Athena mit Python
Fehler beim Spielen mit Python
Netzwerkprogrammierung mit Python Scapy
Wenn Sie diff in Python ausführen und sowohl Rückkehrcode als auch Ausgabe wünschen
Eingabe / Ausgabe von Werten aus der Standardeingabe in der Wettbewerbsprogrammierung usw.
Lösen Sie mit Python [100 frühere Fragen, die Anfänger und Fortgeschrittene lösen sollten] (034-038 Dynamische Planungsmethode: Knapsack DP basic)
Lösen Sie mit Python [100 frühere Fragen, die Anfänger und Fortgeschrittene lösen sollten] (039 - 045 Dynamische Planungsmethode: Knapsack DP-Variante)