Ich möchte euch meinen Lotto Generator und Simulator vorstellen.
Das Pythonprogramm generiert Lottozahlen und kann eine Ziehung simulieren.
Die GUI ist Qt4.
Download
https://github.com/MarkusHackspacher/pyLottoSimu
Info auf meiner Homepage
http://markush.cwsurf.de/joomla_17/inde ... -simulator
Lotto Generator und Simulator
Ich kann das Archivformat nicht öffnen, das du verwendest. Warum keinen Hosting-Dienst wie GitHub, Bitbucket o.ä. verwenden? Oder wenigstens ein besseres Archivformat wie *.tar.gz, *.tar.bz2, *.zip. Aber am besten fände ich immer noch, wenn man sich die Dateien online anschauen könnte.
Ich hab die Dateien mit 7zip komprimiert.
http://www.7-zip.de/
Die Datei ist eben viel kleiner als bei .zip.
Andere sind auch schon auf 7zip umgestiegen,
z.B. Inkscape http://inkscape.modevia.com/win32/?M=D
http://www.7-zip.de/
Die Datei ist eben viel kleiner als bei .zip.
Andere sind auch schon auf 7zip umgestiegen,
z.B. Inkscape http://inkscape.modevia.com/win32/?M=D
Inkscpae bietet deutlich mehr Formate zum Herunterladen an als 7zip: http://inkscape.org/download/?lang=en. 7zip ist da lediglich ein Format, das für Windowsbenutzer gedacht ist, die den Quellcode herunterladen wollen (anstalle einer fertigen exe oder eines Installers). Außerdem kann man bei Inkscape den Code online ansehen: https://code.edge.launchpad.net/~inkscape.dev. Wenn du es so wie Inkscape machen würdest, hätte ich überhaupt nichts zu meckern was das Bereitstellen und Verbreiten des Codes angeht
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Ich kann es unter Linux auch nicht öffnen... muss doch eine 7zip-Implementation dafür geben? Dennoch würde ich auch für ein Hosting a la BitBucket plädieren.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
@Hyperion: Klar gibt's eine Implementierung -- einfach mal in die Paketverwaltung schauen. Würde mich wundern wenn es heute noch Distributionen gäbe, die p7zip nicht an Bord hätten. Das ist doch schon vor Jahren angetreten um RAR mit etwas vergleichbarem aber freiem abzulösen.
Reine Kompressionsprogramme wie ``gzip`` oder ``bz2``, die den Algorithmus können, werden mittlerweile auch von GNU Tar mit eigenen Optionen unterstützt (`-J`/`--xz`/`--lzma`) -- also nicht wundern wenn's irgendwo `*.tar.xz` oder `*.tar.lzma` zum runterladen gibt.
Reine Kompressionsprogramme wie ``gzip`` oder ``bz2``, die den Algorithmus können, werden mittlerweile auch von GNU Tar mit eigenen Optionen unterstützt (`-J`/`--xz`/`--lzma`) -- also nicht wundern wenn's irgendwo `*.tar.xz` oder `*.tar.lzma` zum runterladen gibt.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Ja, hab eine gefunden. "p7zip". Damit gings jetzt.
Zum Code: Ich würde ja das uic-Modul zum dynamischen Lader der GUI gegenüber der statischen Generierung per pyuic vorziehen!
Für die verschiedenen Sätze bei der Ziehung, solltest Du Dir auch mal Dictionaries angucken. Damit kannst Du Die etliche elif-Kaskaden sparen.
Das folgende ist typisch für Umsteiger auf Python; ich wette Du kennst PHP oder C?
Wozu brauchst Du hier den Index? Du guckst Dir doch jede einzelne Zufallszahl aus der liste "zufallszahl" (der Name passt nicht zum Inhalt nebenbei) an. Du kannst in Python doch direkt über die Elemente von Listen iterieren.
Das Zusammenbauen des Strings geht hier sicherlich auch eleganter; da kann man etwas mit den Formatierungsmöglichkeiten von Python basteln. Zudem entfiele hier die Schleife:
Zum Code: Ich würde ja das uic-Modul zum dynamischen Lader der GUI gegenüber der statischen Generierung per pyuic vorziehen!
Für die verschiedenen Sätze bei der Ziehung, solltest Du Dir auch mal Dictionaries angucken. Damit kannst Du Die etliche elif-Kaskaden sparen.
Das folgende ist typisch für Umsteiger auf Python; ich wette Du kennst PHP oder C?
Code: Alles auswählen
laenge_zuf = len(zufallszahl)
for i in range(laenge_zuf):
if zufallszahl[i]<10:
text = text + "0"+ str(zufallszahl[i]) + " "
else:
text = text + str(zufallszahl[i]) + " "
Code: Alles auswählen
for value in zufallzahl:
print value
Code: Alles auswählen
In [21]: values = range(7, 13)
In [22]: "".join(map("{0:02d}".format, values))
Out[22]: '070809101112'
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Selbst wenn es 50% kleiner ist, was ich nicht glaube wären das ja auch nur 40 KB. Man muss beim Wahl des Kompressionsformates einfach auch die Sinnhaftigkeit bedenken. Ich denke am praktischsten für Leute in diesem Forum ist tar.gz, weil die Tools auf ihren Systemen schon da sind.Malta hat geschrieben:Die Datei ist eben viel kleiner als bei .zip.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Bei allem Respekt, ich finde das Verhalten mancher Beteiligter reichlich befremdlich. Es ist weiß Gott nicht schwer, die passende Linux-Implementierung für dieses Archiv-Format zu finden. Es ist folglich ziemlich dreist, den OP für die Wahl dieses Formats zu kritisieren, wenn man nicht willens oder nicht fähig ist, selbstständig das passende Programm zum Entpacken zu finden, umso mehr, als manche der Betroffenen gerne schnell dabei sind, andere zu mehr Eigeninitiative anzumahnen, wenn mal wieder eine Frage gestellt wird, die sich durch einen Blick in die Dokumentation beantworten ließe.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Mich wunderts auch dass 7zip einigen unbekannt ist. Ich wollte dem OP aufzeigen, dass es sinnvoller ist Dateien wenn es nicht wirklich auf das Format ankommt, in einem populäreren Format zu verteilen. Genauso wie man keine Dateien bei 1-Click-Hostern hochladen sollte, weil sich niemand die Mühe machen will die Wartezeit abzuwarten und dann irgendwelche obskuren Captchas einzugeben.
Um mal was zum Programm zu sagen: Ich finde die Namensgebung von ``Anleitung.txt`` und ``hilfe.html`` komisch, das Programm schaut auch bei mir ziemlich hässlich aus, man kann es mittels Ctrl+C nicht in der Konsole beenden, wenn man es dann übers Menü beendet gibt es danach die KeyboardInterrupt-Exception. Außerdem finde ich das Nachfragen ob ich es schließen will ziemlich nervig - es ist ja nicht so als ob da irgendwelche Daten wären wo es schade drum wäre wenn sie verloren gehen. Programme sollten nur nachfragen wenn dabei irgendwelche Daten verloren gehen würden. Den Ausgabefeld-Leeren Button finde ich überflüssig.
Zum Code ``#!/usr/bin/python`` ist keine gute Wahl für die Shebang, ich würde das prüfen auf Gleikhommazahlen nicht über ``floor`` machen denn das filtert Zahlen wie 3.0 raus. Und wenn du das ausschließen willst, dann würde man das wohl als erste Bedingung setzen. Nach einem ``raise`` macht ein ``return`` keinen Sinn. Außerdem ist das Würfeln sehr komisch gelöst.
ist sehr unpythonisch. Der Zuordnungs-Code scheint auch in ``ontimer`` irgendwie fehl am Platz.
Um mal was zum Programm zu sagen: Ich finde die Namensgebung von ``Anleitung.txt`` und ``hilfe.html`` komisch, das Programm schaut auch bei mir ziemlich hässlich aus, man kann es mittels Ctrl+C nicht in der Konsole beenden, wenn man es dann übers Menü beendet gibt es danach die KeyboardInterrupt-Exception. Außerdem finde ich das Nachfragen ob ich es schließen will ziemlich nervig - es ist ja nicht so als ob da irgendwelche Daten wären wo es schade drum wäre wenn sie verloren gehen. Programme sollten nur nachfragen wenn dabei irgendwelche Daten verloren gehen würden. Den Ausgabefeld-Leeren Button finde ich überflüssig.
Zum Code ``#!/usr/bin/python`` ist keine gute Wahl für die Shebang, ich würde das prüfen auf Gleikhommazahlen nicht über ``floor`` machen denn das filtert Zahlen wie 3.0 raus. Und wenn du das ausschließen willst, dann würde man das wohl als erste Bedingung setzen. Nach einem ``raise`` macht ein ``return`` keinen Sinn. Außerdem ist das Würfeln sehr komisch gelöst.
Code: Alles auswählen
for i in range(len(zufallszahl)):
text1=text1 + str(zufallszahl[i]) + " "
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Bei mir sieht's aehnlich unschoen aus wie bei Leonidas. Ich seh da auch lauter feste Groessenangaben fuer die Widgets... Das sollte man vermeiden.
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Hab die Formatierung jetzt anders gestaltet
Und kein Nachfragen beim Beenden.
Wie findet ihr den Aufruf einer Anleitung im Browser im Menü Hilfe --> Hilfe?
Oder gibt es da eine bessere Lösung?
Code: Alles auswählen
"".join(map("{0:02d}".format, zufallszahl))
Wie findet ihr den Aufruf einer Anleitung im Browser im Menü Hilfe --> Hilfe?
Oder gibt es da eine bessere Lösung?
Hey kann mir jemand auch den Zip schicken? Ich will mal den zahlenarchiv auf lotto.de und http://www.lottovergleich.com unter der lupe nehmen, wäre ganz schön spannende
Das ist der direkte Link.
https://github.com/MarkusHackspacher/pyLottoSimu
https://github.com/MarkusHackspacher/pyLottoSimu
Hab eine neue Version und die kann bei github heruntergeladen werden.
Ich habe Github deshalb gewählt, weil ich durch das Versionsverwaltungssystem die Änderungen besser verdeutlichen kann.
https://github.com/MarkusHackspacher/pyLottoSimu
Und Änderungen im Code werden auch dokumentiert.
In der neuen Version habe ich das Hintergrundbild geändert, der Geschwindigkeitsregler ist jetzt besser sichtbar. Bei der Simulation werden jetzt zufällige Texte ausgegeben.
Und hab paar Kleinigkeiten am Code verbessert.
Ich habe Github deshalb gewählt, weil ich durch das Versionsverwaltungssystem die Änderungen besser verdeutlichen kann.
https://github.com/MarkusHackspacher/pyLottoSimu
Und Änderungen im Code werden auch dokumentiert.
In der neuen Version habe ich das Hintergrundbild geändert, der Geschwindigkeitsregler ist jetzt besser sichtbar. Bei der Simulation werden jetzt zufällige Texte ausgegeben.
Und hab paar Kleinigkeiten am Code verbessert.
Hallo
Wollte mal das Programm testen und hab mir Qt4 runter geladen und installiert. Beim Ausführen des Programms (lotto.pyw) kommen bei mir folgende Fehlermeldungen:
Ich bin noch ein Frischling i.S. Python und darum vermag ich diese Fehler noch nicht wirklich zu interpretieren. Kann mir jemand helfen?
mfg
Wollte mal das Programm testen und hab mir Qt4 runter geladen und installiert. Beim Ausführen des Programms (lotto.pyw) kommen bei mir folgende Fehlermeldungen:
Code: Alles auswählen
Traceback (most recent call last):
File "C:\Python27\Lotto\lotto.pyw", line 13, in <module>
lotto.lotto_gui1.gui()
File "C:\Python27\Lotto\lotto\lotto_gui1.py", line 195, in gui
dialog = MeinDialog()
File "C:\Python27\Lotto\lotto\lotto_gui1.py", line 24, in __init__
self.setupUi(self)
File "C:\Python27\Lotto\lotto\lotto.py", line 167, in setupUi
self.retranslateUi(MainWindow)
File "C:\Python27\Lotto\lotto\lotto.py", line 179, in retranslateUi
self.anzahl.setAccessibleName(QtGui.QApplication.translate("MainWindow", "Anzahl", None, QtGui.QApplication.UnicodeUTF8))
AttributeError: 'QSpinBox' object has no attribute 'setAccessibleName'
mfg
Ich verwende Qt bisher fast gar nicht. Dann kann ich ja mal völlig unbelastet darangehen die Fehlermeldung "AttributeError: 'QSpinBox' object has no attribute 'setAccessibleName'" gemeinsam mit dir zu deuten. Es existiert offensichtlich ein Objekt vom Typ QSpinBox. Auf diesem Objekt soll das Attribut setAccessibleName verwendet werden. Dieses gibt es laut Fehlermeldung nicht.lackschuh hat geschrieben:Ich bin noch ein Frischling i.S. Python und darum vermag ich diese Fehler noch nicht wirklich zu interpretieren.
Wo kann es hingekommen sein?
Meine Vermutung ist, dass dieses Attribut in neueren Qt-Versionen (bzw. PyQt-Versionen) hinzugefügt wurde und du eine etwas ältere Version installiert hast. Welche Version ist es denn?
Das Netz weist nach kurzem Google-Fu auch noch auf mögliche Probleme mit Qt ohne "accessibility support" hin.