Je veux éviter les problèmes de saisie lors du débogage de l'exemple de vérification des compétences de Paiza dans un environnement local tel que Jupyter [Python]

Salutation

Cet article est le premier message. J'aimerais écrire ce qui m'intéresse, alors j'apprécierais votre faveur.

Introduction Qu'est-ce que le contrôle des compétences paiza?

Le test de compétence paiza est un test de compétence en programmation qui peut être passé à paiza, un site exploité par paiza Co., Ltd. dans le but de développer les ressources humaines informatiques et de soutenir l'emploi. Les utilisateurs sont classés en fonction de la difficulté des problèmes qu'ils ont résolus lors de cette vérification de compétences et peuvent être repérés par l'entreprise qui a vu le code.

Objectif de cet article

** Exemple de question Échapper à un travail fastidieux de copier-coller lors du débogage ** La plupart des questions de test de programmation, y compris les vérifications de compétences de paiza, ont des exemples d'entrée et de sortie comme exemples, vous allez donc commencer par cet exemple. Dans le cas de paiza, vous pouvez l'essayer en ligne depuis le bas de l'écran du problème et vérifier le fonctionnement, mais à mesure que la difficulté augmente et que le code devient plus long, vous voudrez le décomposer en petits morceaux avec Jupyter Notebook etc. ( Au moins je le ferai). Dans ce cas, vous devrez copier et utiliser l'exemple d'entrée, mais il est ** gênant ** de copier chaque ligne une par une, mais ** je veux aussi l'écrire dans le formulaire lorsque je l'ai soumis ** .. Alors je veux faire quelque chose, faisons quelque chose. Alors j'ai réussi à le faire.

Qu'est-il arrivé

Pour faire simple, j'ai surchargé la fonction ** ʻinput () `, ou je l'ai écrasée **.

L'image suivante est un exemple d'entrée de Introduction à la vérification des compétences d'apprentissage paiza. cette image.png Le but est de créer une fonction utilisable simplement en l'attribuant de cette manière. 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)

** Terminé ** (Divers). Placez-le sous forme de fichier py dans le répertoire à déboguer et importez-le pour utilisation.

debug.ipynb


from paiza_test import*

Comme précédemment, préparez une variable à laquelle l'exemple d'entrée est assigné et lancez-la dans la fonction def_input (), et vous êtes prêt **.

debug.ipynb


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

def_input(input_text)

Après cela, vous pouvez écrire le code que vous souhaitez déboguer ** tel quel **.

debug.ipynb


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

production


apple
book
information
note
pen
pineapple

Par défaut, lorsque l'entrée atteint la fin, une erreur sera lancée la prochaine fois qu'elle sera appelée, mais si l'argument ʻisRepeat est spécifié comme Truelors de l'appel dedef_input ()`, il sera renvoyé à plusieurs reprises depuis le début.

python


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

production


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

De plus, si vous appelez l'argument reset avec True, il sera remis à l'état avant d'appelerdef_input ()(il n'y a pas de valeur de retour).

def_input(input_text)
input(reset=True)

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

3/16 post-scriptum Correction du timing de réglage de ʻisRepeat lors de l'appel de def_input () `.

Résumé

J'espère que cet article a touché les gens avec le même mécontentement et m'a aidé ... Outre paiza, je pense qu'il peut être utilisé pour déboguer d'autres concours de programmation tels que AtCoder. Si vous avez une meilleure solution ou une amélioration, veuillez laisser un commentaire.

Recommended Posts

Je veux éviter les problèmes de saisie lors du débogage de l'exemple de vérification des compétences de Paiza dans un environnement local tel que Jupyter [Python]
Développement LINEbot, je souhaite vérifier le fonctionnement dans l'environnement local
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Comment vérifier la taille de la mémoire d'une variable en Python
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
Lors de la génération d'un grand nombre de graphiques avec matplotlib, je ne souhaite pas afficher le graphique à l'écran (environnement jupyter)
Je veux créer un environnement Python
Si vous voulez un singleton en python, considérez le module comme un singleton
Comment installer le package python dans un environnement local en tant qu'utilisateur général
Je veux convertir par lots le résultat de "chaîne de caractères" .split () en Python
Je veux expliquer en détail la classe abstraite (ABCmeta) de Python
Je souhaite trier une liste dans l'ordre des autres listes
Je veux colorer une partie de la chaîne Excel avec Python
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
Je veux charger le projecteur pytest en tant que bibliothèque ailleurs (pytest peut ne pas exister dans l'environnement)
J'ai créé un script pour vérifier si l'anglais est entré dans la position spécifiée du fichier JSON en Python.
Je veux créer une fenêtre avec Python
Je souhaite définir un cycle de vie dans la définition de tâche d'ECS
Je souhaite voir une liste de fichiers WebDAV dans le module Requêtes
Le programme Python est lent! Je veux accélérer! Dans ce cas ...
Je veux afficher la progression en Python!
[Exemple d'amélioration de Python] Apprentissage des bases de Python sur un site gratuit en 2 semaines
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
Je souhaite être informé de l'environnement de connexion lorsque RaspberryPi se connecte au réseau
Je veux écrire en Python! (1) Vérification du format de code
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Je veux écrire en Python! (2) Écrivons un test
Je veux échantillonner au hasard un fichier avec Python
Je veux travailler avec un robot en python.
Je veux écrire en Python! (3) Utiliser des simulacres
Je veux utiliser le jeu de données R avec python
Je veux faire quelque chose avec Python à la fin
Je veux voir le graphique en 3D! Je peux réaliser un tel rêve.
J'ai écrit un doctest dans "J'ai essayé de simuler la probabilité d'un jeu de bingo avec Python"
Une histoire à laquelle j'étais accro en spécifiant nil comme argument de fonction dans Go
Une histoire que je voulais faire quand j'ai eu une liste de sessions d'étude avec Python
Vérifiez le fonctionnement de Python pour .NET dans chaque environnement
Je veux démarrer un environnement Jupyter avec une seule commande
Je veux démarrer beaucoup de processus à partir de python
J'ai fait une fonction pour vérifier le modèle de DCGAN
Comment développer dans un environnement virtuel Python [Memo]
Je souhaite utiliser un environnement virtuel avec jupyter notebook!
Je veux connaître la nature de Python et pip
Je veux ajouter un joli complément à input () en python
Comment écrire quand on veut mettre un nombre après le numéro de groupe à remplacer par une expression régulière dans re.sub de Python
Je souhaite améliorer l'efficacité avec Python même dans le système expérimental (5) Je souhaite envoyer une notification à la fin de l'expérience avec l'API slack
Exécutez le code de sortie sur le serveur Web local en tant que "A, faisant semblant d'être B" en python
Lorsque vous souhaitez utiliser plusieurs versions de la même bibliothèque Python (environnement virtuel utilisant venv)
Une histoire qui n'a pas fonctionné lorsque j'ai essayé de me connecter avec le module de requêtes Python
Je veux clarifier la question de la méthode "__init__" et de l'argument "self" de la classe Python.
Comment déterminer l'existence d'un élément sélénium en Python
[Linux] Je souhaite connaître la date à laquelle l'utilisateur s'est connecté
[Python] PCA scratch dans l'exemple de "Introduction à la méthode d'analyse multivariée"
Je veux sortir le début du mois prochain avec Python