Seite 1 von 1

Eingabenprüfungen in einfaches Lotto-Tippspiel einbauen

Verfasst: Donnerstag 11. Januar 2018, 22:11
von SITARUK
Hallo zusammen,

ich bin Neuling in der Programmierung und neu in diesem Forum.

Ich möchte in mein kleines Tippspiel Eingabenprüfungen einbauen. D.h. zur Zeit gibt es einen Abbruch wenn ich bei Eingabe des Einsatzes oder den Tipps einen Buchstaben eingebe.

Hat jemand eine Idee ?

Code: Alles auswählen

from random import randint
import time

startkapital=int(1000)
Einsatz = 0

spielRundeLaeuft="j"

while spielRundeLaeuft =="j" and startkapital >0:

    
    MultipLottospieler = 12345
    AnzLottozahlen=7
    zaehler=0
    lottoTip =[]
    lottoSpieler = randint (1,100)*MultipLottospieler
    gesamtEinsatz=lottoSpieler*randint (10,20)
    print ("Willkommen bei Lotto ! Ihr Startkapital beträgt: ",startkapital)
    time.sleep(1)
    print ("In dieser Runde nehmen ",lottoSpieler," Spieler teil.")
    print ("In dieser Runde liegt der Gesamteinsatz bei ",gesamtEinsatz," EUR")
    
    
    Einsatz =int(input("Wie hoch ist Ihr Einsatz? :"))
        
    if Einsatz < startkapital :
            startkapital = startkapital - Einsatz
            print ("ok - Ihr Einsatz ist : ", Einsatz, "Damit haben Sie noch ", startkapital)
       
        
          
            while zaehler < AnzLottozahlen:
                eingabeZahl = int(input ("Bitte geben Sie eine Lottozahl ein : "))
                if eingabeZahl >=1 and eingabeZahl <50 :
                        lottoTip.append(eingabeZahl)
                        zaehler = zaehler+1
                else:
                        print("Diese Zahl existiert nicht im Lottosystem")
    
    
            print ("Ihr Tipp : ",lottoTip)
        
            ziehung = []
        
            anzahlElemente = 7
        
            while anzahlElemente > 0:
                hinzu = randint (1, 49)
                ziehung.append(hinzu)
                anzahlElemente = anzahlElemente - 1
        
            print ("ziehung ",ziehung)
        
            ergebnis = list (set(lottoTip).intersection(set(ziehung)))
        
            print ("Ihre Zahlen sind richtig :",ergebnis)
            Treffer = len(ergebnis)
            print ("Sie haben ",Treffer, " RICHTIGE")
        
            if Treffer == 3:
                    print ("Ihr Gewinn ist 10 EUR" )
                    startkapital = startkapital + 10
            elif Treffer == 4:
                    print ("Ihr Gewinn ist 100 EUR" )
                    startkapital = startkapital + 100
            
    else:
            print ("Ihnen fehlt das Geld für diesen Einsatz!")
                
    spielRundeLaeuft = input ("Wollen Sie weiterspielen? ")
    
    

print ("Auf Wiedersehen")


Re: Eingabenprüfungen in einfaches Lotto-Tippspiel einbauen

Verfasst: Donnerstag 11. Januar 2018, 22:25
von Sirius3
@SITARUK: 70 Zeilen sind eindeutig zu lang für eine while-Schleife. Teile das Programm in Funktionen auf. Die vielen Leerzeichen und Einrückungen machen den Code zusätzlich schwer lesbar. Eingerückt wird immer mit 4 Leerzeichen pro Ebene und nicht mal 4 und mal 8. Variablen werden klein_mit_unterstrich geschrieben. Variablen initalisiert man am besten erst, wenn man sie auch braucht. Um den Abbruch zu verhindern, fängt man die Exception ab und fragt in einer Schleife so lange die Eingabe ab, bis sie korrekt war.

Re: Eingabenprüfungen in einfaches Lotto-Tippspiel einbauen

Verfasst: Donnerstag 11. Januar 2018, 22:39
von SITARUK
Vielen Dank für die künftig zwingend einzuhaltenden Formatierungsregeln. Ich werde entsprechende Anpassungen vornehmen.

Wie binde ich dann die exception am besten ein ?

Re: Eingabenprüfungen in einfaches Lotto-Tippspiel einbauen

Verfasst: Freitag 12. Januar 2018, 07:44
von noisefloor
Hallo,

indem du `try... except` verwendest und dann gezielt den auftretenden Fehler - hier also ein ValueError - abfängst. Nie ein nacktes `except` verwenden.

Gruß, noisefloor

Re: Eingabenprüfungen in einfaches Lotto-Tippspiel einbauen

Verfasst: Freitag 12. Januar 2018, 09:11
von /me
SITARUK hat geschrieben:Vielen Dank für die künftig zwingend einzuhaltenden Formatierungsregeln.
Bezüglich des Aussehens des Codes sind es Empfehlungen, allerdings sehr starke Empfehlungen. Siehe dazu den offiziellen Style Guide for Python Code.