Geschäftseffizienz von Grund auf mit Python

Das Erstellen einer Bowlingbahn-Auszahlungstabelle ist mühsam. Okay, lass es __PC machen __.

Eine unerfahrene Person, die mit Informationssystemen nicht vertraut ist, versuchte zum ersten Mal, ein Tool zu implementieren. Ich hoffe, dass dies als Beispiel für die Verbesserung der Arbeitseffizienz hilfreich sein wird, die selbst Anfänger erreichen können.

Einführung

Bei Wettkämpfen im Bowling ist ein Tisch erforderlich, um die Spieler auf die Bahnen zu verteilen. In dieser Auszahlungstabelle heißt es: "Ein Spieler wird nicht mehr als einmal an dieselbe Box ausgezahlt" und "zwei Personen werden nicht mehr als einmal gleichzeitig an dieselbe Box ausgezahlt (kurz:" Ist es dieselbe Box wie Sie? "). "Tritt nicht auf)" ist erforderlich. Ich glaube nicht, dass jemand außerhalb des Bowlingbereichs es gut weiß, also können Sie es überspringen. Wie auch immer, es ist ziemlich schwierig, dies manuell zu erstellen + überprüfen Sie es mit Ihren Augen (es dauert mehr als eine Stunde, bis Menschen es tun), also lassen Sie es uns mit einem Werkzeug automatisieren. Ich habe das fertige Produkt am Ende der Seite platziert. Wenn Sie möchten, gibt es eine Nachfrage?

0. Grober Fluss bis die Dividendentabelle fertig ist

① Weisen Sie Spielern mit Zufallszahlen Bahnen zu ② Suchen Sie ein Teil, das die Bedingungen nicht erfüllt ③ Mische nur den Problembereich ④ Wiederholen Sie ②③, bis der Problembereich 0 wird ⑤ Erforderliche Informationen ausgeben

1. Lass es uns mit Excel machen!

Vorerst habe ich manuell eine Spurauszahlungstabelle mit Zufallszahlen in Excel erstellt und nur die Erkennung von Problembereichen automatisiert. Da ich von einer Situation ausgegangen bin, in der ich die Excel-Funktionen nicht einmal verstanden habe, habe ich einen Überprüfungsmechanismus implementiert, während ich auf verschiedene Weise gegoogelt habe. Ich bin dankbar, dass es im Internet viele Excel-bezogene Informationen gibt. Problem

2. Python

Es ist ein Ärger, also wollte ich mit der Automatisierung weiter gehen. Okay, lass es uns mit der Programmierung machen. Sie können jedoch keine Programmiersprache verwenden. So lernen Sie Python3 [^ 1]. Python ist visuell wahnsinnig leicht zu verstehen, daher empfehle ich es als Ihre Muttersprache. Ich habe auch Excel VBA (sogenanntes "Makro") in Betracht gezogen, aber aufgehört, weil es umständlich und nicht vielseitig zu sein scheint. Die Implementierung wurde gerade durchgeführt, war aber ziemlich schwierig (in AtCoder scheint es, als würden die Implementierungen von etwa Diff800 miteinander verbunden). Am Ende waren es ungefähr 400 Zeilen. Mir wurde auch klar, wie schwierig es ist, den Eckkasten zu zerquetschen. Problem

3. openpyxl edition

Von hier aus wollten wir die Eingabe- / Ausgabemethode verbessern. Dieses Mal habe ich das openpyxl-Modul verwendet, das Excel-Dateien in Python verarbeiten kann. Ein Modul ist wie eine Toolbox, und durch das Importieren wird die Funktionalität von Python erweitert. Python ist besonders reich an Modulen, daher bin ich sehr dankbar. Mit diesem Modul können Ein- und Ausgaben in Excel erfolgen. openpyxl ist besonders nützlich, daher möchte ich es auch in Zukunft positiv nutzen. Problem ・ Dieses Tool kann nicht für Personen freigegeben werden, auf denen Python nicht installiert ist.

4. tkinter edition

Wir wollten es weiterentwickeln und zu einer GUI-Anwendung machen, die Zeichen in den Frame eingibt und die Lane-Dividend-Tabelle als Excel-Datei ausgibt. Eigentlich habe ich Pythons tkinter-Modul verwendet (nicht Zunder). Ich hatte keine Vorkenntnisse, also fühlte ich mich nur gegoogelt, aber ich habe viel gelernt. Es wurde als GUI-Anwendung abgeschlossen, indem der geschriebene Python-Quellcode mit pyinstaller in eine exe-Datei konvertiert wurde. Jetzt können auch Leute, die Python nicht verwenden können, das Tool verwenden. ScreenShot.png ↑ Wenn Sie so eintreten ... ScreenShot_Product.png ↑ Es wird wie folgt als Excel-Datei ausgegeben.

Die Namensliste stammt aus der PBA-Preisliste 2019. Es ist ein traumhaftes Turnier.

Fertiges Produkt

Die ausgefüllte Anwendung kann von hier (Dropbox) heruntergeladen werden. Bitte spielen Sie damit.

Schließlich

Vielen Dank für das Lesen bis zum Ende. Eigentlich habe ich darüber nachgedacht, dieses Tool in eine WEB-Anwendung umzuwandeln, aber ich habe vorerst aufgegeben, weil ich keine HTML-Kenntnisse hatte. Ich werde wieder berichten, wenn ich HTML herausfordere.

Sonderedition

Parallel zur Implementierung dieses Tools haben wir auch Atcoder gestartet, einen Programmierwettbewerb. Wettbewerbsfähige Programmierung war nützlich! Ich höre so etwas, aber es ist nützlich, um sich an den grundlegenden Umgang mit Listen usw. zu gewöhnen, und ich bin der Meinung, dass der Inhalt bis zur ersten Hälfte von Grün auch für das wirkliche Leben von Menschen ohne Informationen nützlich ist.

[^ 1]: Easy Python (Mana Takahashi, SB Creative). Dieses Buch war trotz seines Namens leicht zu verstehen und ich empfehle es.

Recommended Posts

Geschäftseffizienz von Grund auf mit Python
Python ab Windows 7
GRPC beginnend mit Python
Micro Service mit GCP auf RoR von Grund auf neu
Bildverarbeitung von Grund auf mit Python (5) Fourier-Transformation
Bildverarbeitung von Grund auf mit Python (4) Konturextraktion
Maschinelles Lernen von Grund auf neu (maschinelles Lernen mit Kaggle)
Django von vorne anfangen (Teil: 1)
Verbessertes Lernen ab Python
Python beginnend mit Hallo Welt!
Mit Skype benachrichtigen Sie mit Skype von Python!
Rufen Sie C von Python mit DragonFFI auf
Verwenden von Rstan aus Python mit PypeR
Installieren Sie Python von der Quelle mit Ansible
Führen Sie Aprili von Python auf Orange aus
Rufen Sie Python von Nim mit Nimpy auf
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Laden Sie fbx aus Python mitinema4d
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
Re: Heroku Leben von Grund auf neu mit Flask ~ PhantomJS bis Heroku ~
Sammeln von Informationen von Twitter mit Python (Twitter API)
Systemhandel ab Python3: langfristige Investition
Lassen Sie Code Day75 von vorne beginnen "15.3 Sum"
Empfangen Sie Textdaten von MySQL mit Python
Holen Sie sich HTML von Element mit Python-Selen
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Spielen Sie eine Audiodatei von Python mit Interrupt ab
Erstellen Sie mit python3 eine Wortwolke aus Ihrem Tweet
"Python AI Programmierung" ab 0 für Windows
Tweet von Python mit Twitter Developer + Tweepy
Lassen Sie Code Day 29 "46. Permutationen" von vorne beginnen
Mit openssl verschlüsselte Dateien werden mit openssl aus Python entschlüsselt
Bearbeiten von Azure CosmosDB aus Python Part.2
Bildaufnahme von der Kamera mit Python + OpenCV
Erste Schritte mit Dynamo von Python Boto
Versuchen Sie, Python von Ruby aus mit Sparsamkeit aufzurufen
Scraping von einer authentifizierten Site mit Python
Datenanalyse beginnend mit Python (Datenvorverarbeitung - maschinelles Lernen)
"Erste elastische Suche" beginnend mit einem Python-Client
Verwenden von C ++ - Funktionen aus Python mit pybind11
Re: Heroku Leben von vorne anfangen mit Flask ~ Selenium & PhantomJS & Beautifulsoup ~
Lassen Sie Code Day 27 "101. Symmetric Tree" von vorne beginnen
Sammeln von Informationen von Twitter mit Python (Umgebungskonstruktion)
FizzBuzz in Python3
CSV-Ausgabe der Google-Suche mit [Python]! 【Einfach】
Scraping mit Python
Maschinelles Lernen beginnend mit Python Personal Memorandum Part2
Statistik mit Python
Modernes Tippen ab Python 3.8 Vol.1 (ohne Klasse)
Scraping mit Python
Aufbau einer explosiven Python-Umgebung ab Null (Mac)
Python mit Go
Maschinelles Lernen beginnend mit Python Personal Memorandum Part1
Twilio mit Python
Lassen Sie Code Day 25 "70. Climbing Stairs" von vorne beginnen
Wickeln Sie C mit Cython für Python ein
Spielen Sie mit 2016-Python
SQL zu SQL
Deep Learning von Grund auf neu Die Theorie und Implementierung des mit Python erlernten Deep Learning Kapitel 3