J'ai récemment commencé à concourir chez AtCoder: débutant: C'est bien de commencer, mais c'est un enfer de débogage encore et encore car cela ne se résout pas rapidement: sanglot: Chaque fois que je copie un cas de test sur le terminal ... Arrêtons de faire ça: no_entry_sign:
Cet article windows10 1909 VSCode 1.45.1 Python 3.8.2 C'est le contenu confirmé dans.
Le premier est la simplification de l'entrée standard.
Lors de la recherche de conditions telles que "VS Code python standard input", teratail avait la question et la réponse suivantes. Comment recevoir une entrée standard avec VS Code (Windows10 / Python) Je ne sais pas si c'est célèbre dans le domaine professionnel de la compétition, mais c'est exactement ce que je recherchais.
import io
import sys
_INPUT = """\
2
1 2 3
aaa
"""
sys.stdin = io.StringIO(_INPUT)
print(int(input()))
print(list(map(int, input().split())))
print(list(input()))
#production
2
[1, 2, 3]
['a', 'a', 'a']
Selon la documentation Python, sys.stdin est tout interactif (y compris l'appel ʻinput () `) Utilisé pour l'entrée, io.StringIO est essentiellement une classe qui lit et écrit des chaînes comme un fichier. Il semble que.
<détails> </ div> Entrez un exemple de cas, un cas de test auquel vous pensez et le code que vous souhaitez déboguer. </ détails>
Surtout, il est agréable de voir le cas de test en un coup d'œil, contrairement à l'écrire dans un fichier séparé (input.txt, etc.).
Vous n'avez plus à vous soucier de la tempête de copype: Il existe un outil pour automatiser le jugement des exemples de cas! !! C'est
online-judge-tools
est. online-juge-tools est un excellent outil pour extraire des exemples de cas des sites de concours et automatiser les décisions. Linux ou Mac OS est recommandé comme système d'exploitation, mais il fonctionne également sous Windows. Comme il dit, cela fonctionne très bien dans mon environnement. Pour l'utilisation, consultez la page GitHub, ainsi que
Créer un environnement professionnel compétitif avec Visual Studio Code (Practice)
Exemple de scénario de test automatique et exécution de test de valeur d'entrée manuelle avec VS Code avec AtCoder
J'ai été autorisé à faire référence. Remplacez le dossier .venv par le nom que vous avez utilisé lors de la création de l'environnement virtuel. Il ne faut pas que cela passe comme ca. Le dossier .vscode est créé automatiquement lorsque vous générez tasks.json. Les dossiers script et src ne sont pas absolument nécessaires. Le dossier de test est automatiquement créé lorsque vous exécutez cptest.ps1. Facile à installer avec pip. Entrez votre nom d'utilisateur et votre mot de passe. Pour vérifier si vous vous êtes connecté S'il revient, c'est OK. Ce qui suit est une version modifiée du script que j'ai appelé «.ps1». J'ai installé des outils de juge en ligne dans l'environnement virtuel à l'intérieur du dossier AtCoder, donc la première ligne charge En outre, des URL telles que 2nd National Unified Programming King Finals A-Sum of Two Integers
https://atcoder.jp/contests/nikkei2019-2-qual/tasks/nikkei2019_2_qual_a
Puisque le trait d'union est utilisé dans Ouvrez la palette de commandes avec Maintenant, si le nom du fichier est ʻabc060_b.py Vous avez exécuté. C'est tout pour savoir comment l'utiliser. L'outil peut également être soumis et soumis à un test de résistance. Dans quelle mesure aimeriez-vous pouvoir automatiser le test des exemples de cas: joy:
Je ne l'ai pas encore maîtrisé, alors je ferai de mon mieux à partir de maintenant. C'est vraiment plus facile à déboguer. J'espère que cet article pourra aider d'autres débutants en compétition.
Bonne vie professionnelle de compétition pour tous: vague:
Recommended Posts
test_inut.py
import io
import sys
# input here
_INPUT = """\
"""
sys.stdin = io.StringIO(_INPUT)
# your code here
2. Utilisons des outils de juge en ligne
Comment utiliser
Structure des dossiers
AtCoder\
├── .venv\
│
├── .vscode\
│ └── tasks.json
│
├── sctipt\
│ └── cptest.ps1
│
├── src\
│ └── abc000_0.py
│
└── test\
└── abc000_0\
├── sample-1.in
└── sample-1.out
1. Installation
> pip install online-judge-tools
2. Connexion
> oj login -nom d'utilisateur-p mot de passe"https://atcoder.jp/"
> oj login --check "https://atcoder.jp/"
[*] You have already signed in.
cptest.ps1
. ".venv/Scripts/Activate.ps1"
$problem_name = $Args[0]
$problem_name_list = ($problem_name -split "_")
$base_url = ($problem_name.Replace("_", "-")).Substring(0, ($problem_name.Length) - 2)
if (! (Test-Path $test_dir)) {
oj dl -d test/$problem_name/ https://atcoder.jp/contests/$base_url/tasks/$problem_name
}
oj test -c "python src/$problem_name.py" -d test/$problem_name/
.venv / Scripts / Activate.ps1
et active l'environnement virtuel. Non requis si vous n'êtes pas dans un environnement virtuel.$ base_url
et que le trait de soulignement est utilisé dans $ problem_name
, le processus de changement de _
en -
est ajouté. (Cela a changé.)
Ctrl + Maj + B
.
Rendons donc possible l'exécution de cptest.ps1
.Ctrl + Maj + P
et tapez tâche
pour voir de nombreuses commandes. À partir de là, sélectionnez "Configuration des tâches" -> "Générer les tâches.json à partir du modèle" -> "Autres" pour générer les tâches.json.tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "test_atcorder_sample",
"group": {
"kind": "build",
"isDefault": true
},
"type": "shell",
"command": "${workspaceFolder}/script/cptest.ps1",
"args": [
"${fileBasenameNoExtension}"
]
}
]
}
, appuyez sur
Ctrl + Maj + B`> cptest.ps1 abc060_b
à la fin