Lottoverwaltung

Du hast eine Idee für ein Projekt?
Antworten
Malta
User
Beiträge: 83
Registriert: Samstag 8. Januar 2011, 23:51

Ich hab versucht eine Lottoverwaltung zu programmieren. Aber ich komme in letzter Zeit nicht mehr dazu um weiterzumachen.
Damit es nicht umsonst war möchte ich den Code veröffentlichen, vielleicht kann einer Teile aus dem Code gebrauchen oder gar am Projekt weitermachen oder sich einfach nur inspirieren lassen.
Jetzt auf Github
https://github.com/MarkusHackspacher/pyLottoverwaltung

Bild
Zuletzt geändert von Malta am Dienstag 21. Februar 2012, 20:41, insgesamt 1-mal geändert.
Benutzeravatar
Kebap
User
Beiträge: 687
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Info: Benötigt PyQt4
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@Malta: Vielleicht wäre es sinnvoller, das ganze auf einer Plattform a la bitbucket oder github anzubieten. Sollte es sich nur um zwei, drei Dateien handeln, würde auch ein Pastebin a la paste.pocoo.org gehen. Aber das wäre alles besser als den Code bei solch einem Filehoster zu hinterlegen, bei dem die Dateien vermutlich auch nur über einen kurzen Zeitraum erreichbar sind.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

80 Sekunden warten bis die Datei runtergeladen ist? Sicher nicht, Tab geschlossen. :arrow: So gehts wohl den meisten hier.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

An der Stelle verweise ich mal wieder auf das Dropbox-Referrer-Thema: http://www.python-forum.de/viewtopic.php?f=5&t=23918 :-)

Wobei für Projekte Bitbucket oder Github eher besser geeignet sind als ein „statischer” Download.
Malta
User
Beiträge: 83
Registriert: Samstag 8. Januar 2011, 23:51

Erstmal Danke für euer Interresse, ich hatte schon mit Reaktion "Nicht schon wieder eine Lottoverwaltung" oder so gerechnet.
Ich werde das Projekt in den nächsten Tagen bei Github veröffentlichen.

Jetzt auf Github
https://github.com/MarkusHackspacher/pyLottoverwaltung
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

lotto/zufallszahl.py: Die Funktion zufallszahlen lässt sich mittels random.sample deutlich kompakter definieren:

Code: Alles auswählen

In [1]: import random

In [2]: def zufallszahlen(anzahl, maxwert):
   ...:     return random.sample(xrange(1, maxwert + 1), anzahl)
   ...: 

In [3]: zufallszahlen(3, 3)
Out[3]: [3, 1, 2]

In [4]: zufallszahlen(3, 5)
Out[4]: [1, 2, 4]

In [5]: zufallszahlen(5, 3)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/Users/simon/<ipython-input-5-14174081cd87> in <module>()
----> 1 zufallszahlen(5, 3)

/Users/simon/<ipython-input-2-696d0d32e493> in zufallszahlen(anzahl, maxwert)
      1 def zufallszahlen(anzahl, maxwert):
----> 2     return random.sample(xrange(1, maxwert + 1), anzahl)

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/random.pyc in sample(self, population, k)
    318         n = len(population)
    319         if not 0 <= k <= n:
--> 320             raise ValueError("sample larger than population")
    321         random = self.random
    322         _int = int

ValueError: sample larger than population

In [6]: 
Zu lotto_gui_dialog.py sage ich einfach mal nichts …, das willst du bestimmt auch nicht so stehen lassen. Bei lotto_gui_dateneing.py musst du dringend DRY (don't repeat yourself) befolgen. Zum Beispiel die Zeilen 65 - 113, 184 - 367 und 533 - 728 gehen gar nicht!
Malta
User
Beiträge: 83
Registriert: Samstag 8. Januar 2011, 23:51

Die zufallszahl.py habe ich nach deinem Vorschlag überarbeitet. Die lotto_gui_dialog.py aus Github entfernt, wurde auch nicht im Programm aufgerufen.

Zum Rest, vielleicht habe ich mich in die eine oder andere Richtung verrannt. Aber leider habe ich jetzt nicht die Zeit dazu das Programm fertig zu schreiben oder zu bereinigen.
Malta
User
Beiträge: 83
Registriert: Samstag 8. Januar 2011, 23:51

Habe in der Datei lotto_gui_dateneing.py den Spagetticode ein bisschen aufräumen können
und möchte jetzt die Zeilen 93 bis 142 verkürzen.
https://github.com/MarkusHackspacher/py ... py#L93-142

Hab self.onEingabefeld(1)) ausprobiert, aber ich bekomme den Fehler:

Code: Alles auswählen

   self.connect(self.Btn_Numerary_1to49[0],QtCore.SIGNAL("clicked()"),self.onEingabefeld(1))
TypeError: arguments did not match any overloaded call:
  QObject.connect(QObject, SIGNAL(), QObject, SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'
  QObject.connect(QObject, SIGNAL(), callable, Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'
  QObject.connect(QObject, SIGNAL(), SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'

Edit: Problem behoben
Zuletzt geändert von Malta am Sonntag 22. April 2012, 11:48, insgesamt 1-mal geändert.
lunar

@Malta: Das sollte Dich nicht wundern, denn "self.onEingabefeld(1)" ruft die Funktion auf, anstatt sie als Slot zu übergeben. Du suchst "functools.partial()".
Antworten