Moin bin neu hier im Forum und grad im Beginn mit Python.
Weiss auch nicht, ob das hier der richtige Foren-Bereich ist aber einfach mal ne Frage in die Runde.
Für eine Klausur in der Berufsschule, habe ich in PHP eine Programm schreiben müssen, das Fussball-Mannschaften
in einer DB hat. Diese werden nach einer Abfrage "Wie viele Mannschaften sollen getippt werden"
per Zufall gewählt und in Matches zusammengefügt.
Quasi
"Wie viele Mannschaften" 3
Aus der DB werden ausgelesen Bayern, BVB, KSC und dann gepaart
BVB : KSC
Bayern : BVB
KSC : Bayern
oder ähnlich.
Dann kann getippt werden
0 : 1 , 3:2 , 3:4 etc.
Das Programm hat vorher die wirklichen Ergebnisse schon randomisiert erzeugt und gleicht
diese nun mit den Tipps ab. Ist 1 Teil des Tipps richtig gibt es 1 Punkt sind beide richtig 2 Ounkte
ist keins richtig 0 Punkte.
Dieses Punkteergebnis wird ausgegeben und zusammengerechnet.
So meine Frage wäre jetzt (das ganze ist in PHP schon geschrieben worden und ich komm nicht mehr ran
da Klassenarbeit aber funktioniert hat es :3)
Wie würdet ihr diese Problemstellung in Python angehen ?
Würdet ihr eher mit Modulen arbeiten oder diese Abgleiche selbst schreiben,
wenn ja wie würde das ganze aussehen. Wäre nett wenn da jemand "schnell"
was schreiben könnte mit bissl Kommentar damit ich es nachvollziehen kann
wie ich in Python am besten denke und wie man so Probleme am einfachsten löst
(in der PHP Version habe ich mehrere Tabellen zur Zwischenspeicherung der Ergebnisse
und Variablen genutzt, was man in Python ja anscheinend durch die "Mini-DB" im Arbeitsspeicher
zumindest teilweise umgehen könnte wenn ich es richtig verstanden habe).
Wichtig ! Ich will hier keine Musterlösung sondern nen Denkanstoß !
Welche Module empfehlt ihr wie würde ihr grob das Programm aufbauen,
also quasi
___________
[Optik]
[Aktionen beim Drücken von Buttons]
[Datenbankroutine] usw. mit n bissl Codeschnipsel-Beispiel
__________________________
Hoffe man versteht was ich meine
Danke schon Mal im voraus,
der Cheerok
Weniger ne Idee als mehr eine Frage
Das passende Werkzeug zum Erzeugen der Spielpaarungen findet sich in itertools. Das Auswählen einer zufälligen Menge aus einer vorgegebenen Menge kann man mit random.sample erledigen.
Das führt uns dann beim Start zu Folgendem:
Wenn du keine Rückspiele haben willst, dann ist combinations statt permutations das Mittel der Wahl.
Jetzt kannst du die Kombinationen mit den Ergebnissen zusammen in einer geeigneten Datenstruktur in eine Liste stecken und weiterverarbeiten.
Das führt uns dann beim Start zu Folgendem:
Code: Alles auswählen
import itertools
import random
teams = ['BVB', 'Bayern', 'Leverkusen', 'Schalke']
number_of_teams = 3
for team1, team2 in itertools.permutations(random.sample(teams, number_of_teams), 2):
print('{} : {}'.format(team1, team2))
Jetzt kannst du die Kombinationen mit den Ergebnissen zusammen in einer geeigneten Datenstruktur in eine Liste stecken und weiterverarbeiten.
Und in der Dokumentation gibt es einen Index über alle Module und Funktionen (und Methoden). Das könnte man als Tabelle auffassen. Ist aber eher weniger geeignet um die Standardbibliothek kennen zu lernen. Eher wenn man ein Skript mit einer Funktion oder Methode hat und über den Namen die passende Stelle in der Dokumentation finden möchte.
@Cheerok: Bei GUI würde ich dazu raten unabhängig von dem Problem erst einmal objektorientierte Programmierung (OOP) zu lernen, falls das Thema noch nicht bekannt ist und sitzt. Bei GUIs kommt man um eigene Klassen in der Regel nicht herum.
Bei einem ordentlichen Programm ist die Geschäftslogik sauber von der Kommunikation mit dem Benutzer getrennt, so dass Du die Geschäftslogik auch ohne GUI schon umsetzen und testen kannst.
Bei einem ordentlichen Programm ist die Geschäftslogik sauber von der Kommunikation mit dem Benutzer getrennt, so dass Du die Geschäftslogik auch ohne GUI schon umsetzen und testen kannst.