Efficacité commerciale à partir de zéro avec Python

Créer une table de paiement pour une piste de bowling est un problème. Très bien, laissons __PC le faire __.

Une personne inexpérimentée et peu familiarisée avec les systèmes d'information a tenté de mettre en place un outil pour la première fois. J'espère que cela sera utile comme exemple d'amélioration de l'efficacité du travail que même les débutants peuvent faire.

introduction

Les compétitions de quilles compétitives nécessitent une table pour répartir les joueurs dans les couloirs. Ce tableau de paiement indique qu '"un joueur ne sera pas payé plus d'une fois pour la même boîte" et "deux personnes ne seront pas payées plus d'une fois pour la même boîte en même temps (en bref," Est-ce la même boîte que vous? " «Ne se produit pas)» est requis. Je ne pense pas que quiconque en dehors du bowling le sache bien, vous pouvez donc l'ignorer. Quoi qu'il en soit, il est assez difficile de créer cela manuellement + de le vérifier avec vos yeux (cela prend plus d'une heure aux humains pour le faire), alors automatisons-le avec un outil. Je mets le produit fini en fin de page, donc si vous aimez (y a-t-il une demande?).

0. Flux brutal jusqu'à ce que le tableau des dividendes soit rempli

① Attribuez des voies aux joueurs avec des nombres aléatoires ② Trouvez une pièce qui ne remplit pas les conditions ③ Mélangez uniquement la zone à problème ④ Répétez ②③ jusqu'à ce que la zone à problème devienne 0 ⑤ Sortie des informations nécessaires

1. Faisons-le avec Excel!

Pour le moment, j'ai créé manuellement un tableau de paiement des voies en utilisant des nombres aléatoires dans Excel et automatisé uniquement la détection des zones à problèmes. Depuis que je suis parti d'une situation où je ne comprenais même pas les fonctions d'Excel, j'ai implémenté un mécanisme de vérification tout en googlant diversement. Je suis reconnaissant qu'il y ait beaucoup d'informations liées à Excel sur le net. problème -Le nombre de joueurs et le nombre de cases utilisées étant différents pour chaque tournoi, il est nécessaire d'assembler manuellement le mécanisme de contrôle à chaque fois (c'est gênant). ・ La compatibilité de l'énumération en combinaison avec Excel est extrêmement mauvaise.

2. Python

C'est un problème, j'ai donc voulu aller plus loin avec l'automatisation. Très bien, faisons-le avec la programmation. Mais vous ne pouvez utiliser aucun langage de programmation. Vous apprendrez donc Python3 [^ 1]. Python est visuellement incroyablement facile à comprendre, je le recommande donc comme langue maternelle. J'ai également considéré Excel VBA (soi-disant "macro"), mais je me suis arrêté car il semble maladroit et peu polyvalent. L'implémentation était juste faite, mais c'était assez difficile (dans AtCoder, on a l'impression de connecter les implémentations d'environ Diff800). Au final, c'était environ 400 lignes. J'ai également réalisé à quel point il est difficile d'écraser le boîtier d'angle. problème -Comme il est entré et sorti sous forme de chaîne de caractères sur Python, il est nécessaire de le copier et de le coller avec un fichier Excel, ce qui est un peu difficile à utiliser.

3. édition openpyxl

À partir de là, nous avons cherché à améliorer la méthode d'entrée / sortie. Cette fois, j'ai utilisé le module openpyxl qui peut gérer les fichiers Excel sur Python. Un module est comme une boîte à outils, et son importation étend ce que vous pouvez faire sur Python. Python est particulièrement riche en modules, donc je suis vraiment reconnaissant. En utilisant ce module, l'entrée et la sortie peuvent être effectuées sur Excel. openpyxl est particulièrement utile, je voudrais donc continuer à l'utiliser de manière positive à l'avenir. problème ・ Cet outil ne peut pas être partagé avec des personnes qui n'ont pas installé Python.

4. édition tkinter

Nous visions à le développer davantage et à en faire une application GUI qui fonctionne en entrant des caractères dans le cadre et en sortant le tableau de dividende de voie sous forme de fichier Excel. En fait, j'ai utilisé le module tkinter de Python (pas Tinder). Je n'avais aucune connaissance préalable, alors j'avais l'impression d'être simplement recherché sur Google, mais j'ai beaucoup appris. Il a été complété en tant qu'application GUI en convertissant le code source Python écrit en un fichier exe à l'aide de pyinstaller. Désormais, même les personnes qui ne peuvent pas utiliser Python peuvent utiliser l'outil. ScreenShot.png ↑ Si vous entrez comme ça ... ScreenShot_Product.png ↑ Il est sorti sous forme de fichier Excel comme celui-ci.

La liste des noms est tirée du classement des prix PBA 2019. C'est un tournoi de rêve.

Produit fini

L'application complétée peut être téléchargée depuis ici (Dropbox). Veuillez jouer avec.

finalement

Merci d'avoir lu jusqu'au bout. En fait, j'ai pensé à transformer cet outil en application WEB, mais j'ai abandonné pour le moment car je n'avais aucune connaissance du html. Je rapporterai à nouveau si je conteste html.

Édition supplémentaire

Parallèlement à la mise en place de cet outil, nous avons également lancé Atcoder, un concours de programmation. La programmation compétitive a été utile! J'entends quelque chose comme ça, mais c'est utile pour s'habituer à la gestion de base des listes, etc., et je pense que le contenu jusqu'à la première moitié du vert est également utile pour la vie réelle des personnes non informatives.

[^ 1]: Easy Python (Mana Takahashi, SB Creative), Ce livre était facile à comprendre malgré son nom, et je le recommande.

Recommended Posts

Efficacité commerciale à partir de zéro avec Python
Python à partir de Windows 7
GRPC commençant par Python
Micro service avec GCP sur RoR à partir de zéro
Traitement d'image à partir de zéro avec python (5) Transformation de Fourier
Traitement d'image à partir de zéro avec python (4) Extraction de contour
Apprentissage automatique à partir de zéro (apprentissage automatique appris avec Kaggle)
Django à partir de zéro (partie: 1)
Apprentissage amélioré à partir de Python
Python commençant par Hello world!
Avec skype, notifiez avec skype de python!
Appeler C depuis Python avec DragonFFI
Utilisation de Rstan de Python avec PypeR
Installez Python à partir des sources avec Ansible
Exécutez Aprili depuis Python sur Orange
Appelez python de nim avec Nimpy
Analyse de données à partir de python (visualisation de données 1)
Charger fbx depuis python avec cinema4d
Analyse de données à partir de python (visualisation de données 2)
Re: La vie d'Heroku à partir de zéro avec Flask ~ PhantomJS à Heroku ~
Collecter des informations sur Twitter avec Python (API Twitter)
Commerce système à partir de Python3: investissement à long terme
Soit Code Day75 à partir de zéro "15.3 Sum"
Recevoir des données textuelles de mysql avec python
Obtenir le code HTML de l'élément avec du sélénium Python
[Note] Obtenir des données de PostgreSQL avec Python
Lire un fichier audio à partir de Python avec interruption
Créez wordcloud à partir de votre tweet avec python3
"Programmation Python AI" à partir de 0 pour Windows
Tweet de python avec Twitter Developer + Tweepy
Let Code Day 29 "46. Permutations" à partir de zéro
Décrypter les fichiers cryptés avec openssl depuis python avec openssl
Manipulation d'Azure CosmosDB à partir de Python Part.2
Acquisition d'images depuis une caméra avec Python + OpenCV
Premiers pas avec Dynamo de Python boto
Essayez d'appeler Python depuis Ruby avec une économie
Scraping depuis un site authentifié avec python
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
"Première recherche élastique" commençant par un client python
Utilisation des fonctions C ++ de python avec pybind11
Re: La vie Heroku à partir de zéro avec Flask ~ Selenium & PhantomJS & Beautifulsoup ~
Let Code Day 27 "101. Symmetric Tree" à partir de zéro
Collecter des informations depuis Twitter avec Python (construction de l'environnement)
FizzBuzz en Python3
Sortie CSV de la recherche Google avec [Python]! 【Facile】
Grattage avec Python
Apprentissage automatique à partir de Python Personal Memorandum Part2
Statistiques avec python
Typage moderne à partir de Python 3.8 vol.1 (sans classe)
Grattage avec Python
Construction d'environnement explosif Python à partir de zéro (Mac)
Python avec Go
Apprentissage automatique à partir de Python Personal Memorandum Part1
Twilio avec Python
Let Code Day 25 "70. Grimper les escaliers" à partir de zéro
Envelopper C avec Cython pour une utilisation à partir de Python
Jouez avec 2016-Python
sql à sql
Deep Learning from scratch La théorie et la mise en œuvre de l'apprentissage profond appris avec Python Chapitre 3