Seite 1 von 1
Wiederholungen
Verfasst: Montag 23. November 2020, 19:55
von Notgod
Code: Alles auswählen
import Lotto_3 as L
class Spiel:
def abfrage(self):
print("(N)eues Spiel \n""(G)eld zeigen \n""(E)nde")
while True:
eingabe_user = input("Was möchtes du machen>>>").lower()
if eingabe_user in ('n', 'g', 'e'):
break
print("die angabe gibt es nicht")
return eingabe_user
def auswertung(self,wert):
if wert in "n":
print("Viel Glück")
eingabe = L.Eingabe()
eingabe.eingabe_user()
eingabe.random_zahlen()
eingabe.random_Superzahl()
eingabe.Prüfer(eingabe.Zahlen, eingabe.RZahlen)
eingabe.Prüfer_2(eingabe.SZahl,eingabe.RSZahl)
eingabe.printer()
#nach dem dies ausgeführt wurde sollte eiglt die funk auswerung wieder starten 'FRAGE'
elif wert in "g":
print("hi")
#geld klasse noch nicht definiert
# genau so hier 'FRAGE'
elif wert in "e":
print("Tüss")
else:
assert False, "dieser Fall kann nicht auftreten"
Spiel = Spiel()
eingabe_user = Spiel.abfrage()
Spiel.auswertung(eingabe_user)
Hallo ich hätte eine Frage. Wie kriege ich es hin, dass die funk abfrage nach dem auswerten in der funk auswertung wiederholt wird.
Würde mich über eine Antwort freuen.
Re: Wiederholungen
Verfasst: Montag 23. November 2020, 20:16
von Sirius3
Du überschreibst schon wieder die Klasse mit seiner Instanz. Dass das erst gar nicht passiert, schreibt man Klassen mit großem Anfangsbuchstaben, und alle Variablen komplett klein.
Die Klasse ist aber immer noch total überflüssig, weil die Methoden self gar nicht benutzen. Lass doch die Klasse einfach weg.
Der Modul-Name ist auch falsch, denn Module werden auch komplett klein geschrieben. Benutze keine kryptischen Abkürzungen, lotto ist schon ein bißchen aussagekräftiger als L. Was soll denn die 3?
Das was Du da in der Lotto-Methode machst, sieht auch komisch aus. Du benutzt anscheinden Klassenmethoden und übergibst diesen Instanzattribute. Wieder mit kryptischen Abkürzungen, was soll denn das S oder R oder SR bedeuten?
Wenn Du etwas wiederholen willst, mußt Du eine Schleife benutzen.
Ich sehe nicht, dass hier irgendetwas gefunkt wird.
Re: Wiederholungen
Verfasst: Montag 23. November 2020, 20:44
von __blackjack__
@Notgod: `Lotto_3.Eingabe` sieht auch nach einer Klasse aus. Sollte aber auch keine sein. Was hast Du denn bitte mit Klassen? Das hier ist Python und kein Java. Man muss in Python nicht nur nicht alles sinnlos in irgendeine Klasse stopfen, man macht das auch nicht. Denn es ist falsch.
``in`` wird auch falsch verwendet. Das prüft ob der erste Operand im zweiten enthalten ist. Der Code sieht aber so aus als wenn Du da auf Gleichheit prüfen möchtest, denn bis auf beim ``if`` ist das bei den weiteren ``elif``\s effektiv der Fall, nur halt sehr verwirrend, weil sich der Leser fragt warum das so schräg gemacht wird. Auf der anderen Seite denkt der Leser vielleicht auch beim ``if`` wäre das äquivalent zum Vergleich wenn er nicht an die leere Zeichenkette denkt. Der Test darauf ist also für den einen oder anderen Leser versteckt/verschleiert/nicht offensichtlich und sollte besser explizit da stehen.