Ich möchte die Mühe der Eingabe beim Debuggen von Paizas Skill-Check-Beispiel in einer lokalen Umgebung wie Jupyter [Python] sparen.

Gruß

Dieser Artikel ist der erste Beitrag. Ich möchte aufschreiben, woran ich interessiert war, also würde ich mich über Ihre Gunst freuen.

Einleitung Was ist Paiza Skill Check?

Der Paiza Skill Check ist ein Programmier-Skill-Test, der bei paiza durchgeführt werden kann, einer Website, die von paiza Co., Ltd. betrieben wird, um IT-Humanressourcen zu entwickeln und die Beschäftigung zu unterstützen. Benutzer werden nach der Schwierigkeit der Probleme eingestuft, die sie bei dieser Fähigkeitsüberprüfung behoben haben, und können von der Firma, die den Code gesehen hat, aufgespürt werden.

Zweck dieses Artikels

** Beispiel für eine Frage Entfliehen Sie beim Debuggen dem mühsamen Kopieren und Einfügen ** Die meisten Fragen zu Programmiertests, einschließlich der Fähigkeitsüberprüfungen von paiza, enthalten Beispiele für Eingabe und Ausgabe. Sie beginnen also mit diesem Beispiel. Im Fall von Paiza können Sie es online am unteren Rand des Problembildschirms ausprobieren und den Vorgang überprüfen. Wenn der Schwierigkeitsgrad jedoch zunimmt und der Code länger wird, sollten Sie ihn mit Jupyter Notebook usw. in kleinen Stücken zurücksetzen. ( Zumindest werde ich). In diesem Fall müssen Sie das Eingabebeispiel kopieren und einfügen, aber es ist ** mühsam **, jede Zeile Zeile für Zeile zu kopieren, aber ** ich möchte es auch in der gleichen Form schreiben, in der ich es eingereicht habe ** .. Also möchte ich etwas tun, lass uns etwas tun. Also habe ich es geschafft.

Was ist passiert

Einfach ausgedrückt habe ich die Funktion ** input () überladen oder überschrieben **.

Das folgende Bild ist ein Eingabebeispiel für Einführung in die Überprüfung der Paiza-Lernfähigkeiten. Dies image.png Ziel ist es, eine Funktion zu erstellen, die einfach durch Zuweisung auf diese Weise verwendet werden kann. image.png ・ ・ ・

paiza_test.py


def preinput(input_text):
    out=input_text.split("\n")
    for i in out:
        yield i

def input(reset=False):
    global input_text,inp
    if reset:del inp,input_text,repeat;return
    try:return inp.__next__()
    except:
        if repeat:inp=preinput(input_text)
        return inp.__next__()

def def_input(s,isRepeat=False):
    global input_text,inp,repeat
    input_text=s
    repeat=isRepeat
    inp=preinput(input_text)

** Fertig ** (Verschiedenes). Legen Sie diese als py-Datei in das zu debuggende Verzeichnis und importieren Sie sie zur Verwendung.

debug.ipynb


from paiza_test import*

Bereiten Sie wie zuvor eine Variable vor, der das Eingabebeispiel zugewiesen ist, und werfen Sie sie in die Funktion def_input (), und schon sind Sie fertig **.

debug.ipynb


input_text="""6
apple
book
information
note
pen
pineapple"""

def_input(input_text)

Danach können Sie den Code schreiben, den Sie in ** wie besehen ** debuggen möchten.

debug.ipynb


n=int(input())
for i in range(n):
    print(input())

Ausgabe


apple
book
information
note
pen
pineapple

Wenn die Eingabe das Ende erreicht, wird beim nächsten Aufruf standardmäßig ein Fehler ausgegeben. Wenn jedoch das Argument "isRepeat" beim Aufruf von "def_input ()" als "True" angegeben wird, wird es von Anfang an wiederholt ausgegeben.

python


def_input(input_text,isRepeat=True)
n=int(input())
for i in range(3*n):
    print(input())

Ausgabe


apple
book
information
note
pen
pineapple
6
apple
book
information
note
pen
pineapple
6
apple
book
information
note

Wenn Sie das Argument "reset" mit "True" aufrufen, wird es auf den Status zurückgesetzt, bevor Sie "def_input ()" aufrufen (es gibt keinen Rückgabewert).

def_input(input_text)
input(reset=True)

input()  #------> error

3/16 Nachschrift Das Einstellungs-Timing von "isRepeat" beim Aufruf von "def_input ()" wurde korrigiert.

Zusammenfassung

Ich hoffe, dieser Artikel hat Menschen mit der gleichen Unzufriedenheit erreicht und mir geholfen ... Ich denke, es kann zum Debuggen anderer Programmierwettbewerbe wie AtCoder neben Paiza verwendet werden. Wenn Sie einen besseren Weg oder eine Verbesserung haben, hinterlassen Sie bitte einen Kommentar.

Recommended Posts

Ich möchte die Mühe der Eingabe beim Debuggen von Paizas Skill-Check-Beispiel in einer lokalen Umgebung wie Jupyter [Python] sparen.
LINEbot-Entwicklung möchte ich den Betrieb in der lokalen Umgebung überprüfen
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Ich möchte Python in der Umgebung von pyenv + pipenv unter Windows 10 verwenden
So überprüfen Sie die Speichergröße einer Variablen in Python
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
Wenn ich mit matplotlib eine große Anzahl von Diagrammen generiere, möchte ich das Diagramm nicht auf dem Bildschirm anzeigen (Jupyter-Umgebung).
Ich möchte eine Python-Umgebung erstellen
Wenn Sie einen Singleton in Python möchten, stellen Sie sich das Modul als Singleton vor
So installieren Sie das Python-Paket in einer lokalen Umgebung als allgemeiner Benutzer
Ich möchte das Ergebnis von "Zeichenfolge" .split () in Python stapelweise konvertieren
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
Ich möchte einen Teil der Excel-Zeichenfolge mit Python einfärben
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Ich möchte das Pytest-Gerät als Bibliothek an einer anderen Stelle laden (Pytest ist möglicherweise nicht in der Umgebung vorhanden).
Ich habe ein Skript erstellt, um zu überprüfen, ob an der angegebenen Position der JSON-Datei in Python Englisch eingegeben wird.
Ich möchte mit Python ein Fenster erstellen
Ich möchte einen Lebenszyklus in der Aufgabendefinition von ECS festlegen
Ich möchte eine Liste der WebDAV-Dateien im Modul Anfragen anzeigen
Python-Programm ist langsam! Ich möchte beschleunigen! In einem solchen Fall ...
Ich möchte den Fortschritt in Python anzeigen!
[Beispiel für eine Python-Verbesserung] In 2 Wochen wurden die Grundlagen von Python auf einer kostenlosen Website erlernt
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
Ich möchte über die Verbindungsumgebung benachrichtigt werden, wenn RaspberryPi eine Verbindung zum Netzwerk herstellt
Ich möchte in Python schreiben! (1) Überprüfung des Codeformats
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Ich möchte eine Datei mit Python zufällig testen
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich möchte R-Datensatz mit Python verwenden
Ich möchte am Ende etwas mit Python machen
Ich möchte die Grafik in 3D sehen! Ich kann einen solchen Traum wahr werden lassen.
Ich schrieb einen Test in "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren".
Eine Geschichte, nach der ich süchtig war, als ich in Go nil als Funktionsargument angab
Eine Geschichte, die ich machen wollte, als ich eine Liste von Lernsitzungen mit Python bekam
Überprüfen Sie die Funktionsweise von Python für .NET in jeder Umgebung
Ich möchte eine Jupyter-Umgebung mit einem Befehl starten
Ich möchte viele Prozesse von Python aus starten
Ich habe eine Funktion erstellt, um das Modell von DCGAN zu überprüfen
So entwickeln Sie in einer virtuellen Python-Umgebung [Memo]
Ich möchte eine virtuelle Umgebung mit Jupyter Notebook verwenden!
Ich möchte die Natur von Python und Pip kennenlernen
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
So schreiben Sie, wenn Sie eine Zahl nach der Gruppennummer setzen möchten, die durch einen regulären Ausdruck in Python ersetzt werden soll
Ich möchte die Effizienz mit Python auch im experimentellen System verbessern. (5) Ich möchte am Ende des Experiments eine Benachrichtigung mit der Slack-API senden
Führen Sie den Ausgabecode auf dem lokalen Webserver in Python als "A, gibt vor, B zu sein" aus
Wenn Sie mehrere Versionen derselben Python-Bibliothek verwenden möchten (virtuelle Umgebung mit venv)
Eine Geschichte, die nicht funktioniert hat, als ich versucht habe, mich mit dem Python-Anforderungsmodul anzumelden
Ich möchte die Frage nach der Methode "__init__" und dem Argument "self" der Python-Klasse klären.
So bestimmen Sie die Existenz eines Selenelements in Python
[Linux] Ich möchte das Datum wissen, an dem sich der Benutzer angemeldet hat
[Python] PCA-Scratch im Beispiel "Einführung in die multivariate Analysemethode"
Ich möchte den Anfang des nächsten Monats mit Python ausgeben