Python :: Aufgabe #3 :: Lösung #5

17 Lösungen Lösungen öffentlich
#3

Lotto - Simulation - 6 aus 49

Anfänger - Python von Gustl - 25.11.2012 um 16:16 Uhr
Schreiben Sie ein Programm, welches 6 Zahlen zwischen 1 und 49 abfrägt. Danach soll das Programm solange 6 Zufallszahlen berechnen bis alle 6 eingegebenen Zahlen übereinstimmen. Natürlich darf eine Zahl nicht zweimal vorkommen.
Dann soll ausgegeben werden nach wie vielen "Spielen" ein 6er erzielt wurde und wie hoch die Chance auf einen 3er, einen 4er und einen 5er war.
#5
vote_ok
von _Mala_Fide_ (820 Punkte) - 13.10.2015 um 13:22 Uhr
Quellcode ausblenden Python-Code
#!/usr/bin/python
# -*- coding: utf-8 -*-

import random

print "Dies ist ein Lotto-Simulator 6 aus 49."
print "Es wird getestet nach wievielen Spielen\nDu einen 6er mit Deinen Zahlen erreicht\nhättest und wie hoch die Chance auf\neinen 3er, 4er und 5er war.\n"

eingabe_liste = []
def tip_eingabe():
	global eingabe_liste
	try:
		eingabe = input("Gib eine Zahl ein:\t")
		while 1 > eingabe or eingabe > 49 or eingabe in eingabe_liste:
			print "Du hast eine falsche Zahl eingegeben."
			eingabe = input("Gib eine Zahl ein:\t")
		eingabe_liste += [eingabe]
	except:
		print "Deine Eingabe war falsch."
		tip_eingabe()

ausgabe_liste = []
def tip_ausgabe():
	global ausgabe_liste
	ausgabe_liste = []
	for i in range(6):
		zufallszahl = random.randrange(1, 49)
		while zufallszahl in ausgabe_liste:
				zufallszahl = random.randrange(1, 49)
		ausgabe_liste += [zufallszahl]

dic_zwischengewinne = {"3er":0, "4er":0, "5er":0}
def zwischengewinne():
	global dic_zwischengewinne
	gleich = 0
	for n in ausgabe_liste:
		if n in eingabe_liste:
			gleich += 1
	if gleich == 3:
		dic_zwischengewinne["3er"] += 1
	elif gleich == 4:
		dic_zwischengewinne["4er"] += 1
	elif gleich == 5:
		dic_zwischengewinne["5er"] += 1
	else:
		pass

for i in range(6):
	tip_eingabe()
	eingabe_liste.sort()
spiele = 0
while ausgabe_liste != eingabe_liste:
	tip_ausgabe()
	zwischengewinne()
	spiele += 1
	ausgabe_liste.sort()
	
print "\nDu hättest nach", spiele, "Spielen einen 6er gehabt."
print "Die Chance einen 3er zu bekommen lag bei %.3f %s." % ((dic_zwischengewinne["3er"] * 100.0 / spiele), "%")
print "Die Chance einen 4er zu bekommen lag bei %.3f %s." % ((dic_zwischengewinne["4er"] * 100.0 / spiele), "%")
print "Die Chance einen 5er zu bekommen lag bei %.3f %s." % ((dic_zwischengewinne["5er"] * 100.0 / spiele), "%")

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2103721

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.