Cet article est le premier message. J'aimerais écrire ce qui m'intéresse, alors j'apprécierais votre faveur.
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.
** 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.
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 Le but est de créer une fonction utilisable simplement en l'attribuant de cette manière. ・ ・ ・
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 de
def_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 () `.
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