Eurojackpot-Zahlen ziehen. Simpel, Terminal

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
gajan
User
Beiträge: 2
Registriert: Donnerstag 5. Oktober 2017, 21:21

Eurojackpot-Zahlen ziehen. Simpel, Terminal

Beitragvon gajan » Donnerstag 5. Oktober 2017, 22:00

Hallo!

Bin absoluter Anfänger und hier ist mein Entwurf für einen Zahlengenerator, der nicht zufällig Zahlen generiert sondern eine Liste zufällig sortiert, die erste Zahl "zieht" und den Rest wieder zufällig sortiert, wieder die erste zieht usw... Eben wie im echten Lotto. Das ging in Python so erstaunlich einfach dass ich total begeistert von dieser Sprache bin.
Olé und eine gute Zeit!

  1. #!/usr/bin/python
  2.  
  3. import random
  4.  
  5. zahlen50 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]
  6.  
  7. zahlen10 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  8.  
  9. print("Die nächsten Eurojackpotzahlen sind eventuell:")
  10.  
  11. for i in range(5):
  12.     random.shuffle(zahlen50)
  13.     print(zahlen50[0]), '',
  14.     del zahlen50[0]
  15.  
  16. print("  "),
  17.  
  18. for j in range(2):
  19.     random.shuffle(zahlen10)
  20.     print(zahlen10[0]), '',
  21.     del zahlen10[0]
  22.  
  23. raw_input() # nur damit das Terminal geöffnet bleibt
Sirius3
User
Beiträge: 6385
Registriert: Sonntag 21. Oktober 2012, 17:20

Re: Eurojackpot-Zahlen ziehen. Simpel, Terminal

Beitragvon Sirius3 » Donnerstag 5. Oktober 2017, 22:17

Hallo gajan,

auch wenn man Zahlen zufällig sortiert, sind sie danach sortiert :wink: . Auch werden Zahlen nicht zufälliger, wenn man sie mehrfach mischt. Listen mit aufsteigenden Zahlen muß man nicht händisch schreiben, dafür gibt es »range«. Und wenn man zufällige Elemente einer Liste will, nimmt man statt dessen einfach »random.sample«. In Python2 ist »print« eine Anweisung; die Klammern um das erste Argument sind sehr verwirrend.
  1. #!/usr/bin/python
  2. import random
  3.  
  4. print "Die nächsten Eurojackpotzahlen sind eventuell:"
  5.  
  6. zahlen50 = range(1, 50)
  7. gezogen = random.sample(zahlen50, 5)
  8. for zahl in gezogen:
  9.     print zahl,
  10.  
  11. print "  ",
  12.  
  13. zahlen10 = range(1, 10)
  14. gezogen = random.sample(zahlen10, 2)
  15. for zahl in gezogen:
  16.     print zahl,
gajan
User
Beiträge: 2
Registriert: Donnerstag 5. Oktober 2017, 21:21

Re: Eurojackpot-Zahlen ziehen. Simpel, Terminal

Beitragvon gajan » Donnerstag 5. Oktober 2017, 22:30

Besten Dank! :) wie gesagt stehe noch ganz am Anfang... haha ich dachte gleich, dass man sicherlich nicht alle Zahlen von Hand schreibt. Ich wollte nur nah an der Wirklichkeit bleiben. ;)

Jedoch: ich wollte es ganz ausdrücklich so, wie es im echten Lotto passiert: Eine Zahl wird der Trommel entnommen, alle weiteren, minus der gezogenen natürlich, werden wieder durchgemischt. Das passiert in deinem Bsp nicht mehr, oder?

Grüße!
Sirius3
User
Beiträge: 6385
Registriert: Sonntag 21. Oktober 2012, 17:20

Re: Eurojackpot-Zahlen ziehen. Simpel, Terminal

Beitragvon Sirius3 » Donnerstag 5. Oktober 2017, 22:48

Beim Programmieren kommt es nur auf das Ergebnis an. Je einfacher man zum Ergebnis kommt, desto besser. Da ist noch ein Fehler drin, es muß »zahlen50 = range(1, 51)« heißen.
Benutzeravatar
kbr
User
Beiträge: 686
Registriert: Mittwoch 15. Oktober 2008, 09:27
Wohnort: Düsseldorf

Re: Eurojackpot-Zahlen ziehen. Simpel, Terminal

Beitragvon kbr » Freitag 6. Oktober 2017, 23:11

Das geht auch kürzer:

  1. import random
  2.  
  3. print("Die nächsten Eurojackpotzahlen sind eventuell:")
  4.  
  5. for upper, numbers in ((50, 5), (10, 2)):
  6.     for number in sorted(random.sample(range(1, upper+1), numbers)):
  7.         print(number, end=' ')
  8.     print()

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder