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!