@dh_humanities,
dein Konzept passt irgendwie nicht. Ein Problem ist, dass du zunächst alle Eingaben vom Benutzerholst und dann prüfst ob die Eingaben richtig sind. Was soll dann passieren wenn es eine oder mehrere falsche Eingabe gibt? Aktuell wird ja alles verworfen und None zurückgegeben.
Du solltest dir einmal stichpunktartig als Pseudo-Code aufschreiben wie das Programm ablaufen soll.
So könnte man es machen:
Dabei wird aber jede Eingabe einzeln geholt und geprüft:
Code: Alles auswählen
def validate_tip():
lucky_numbers = []
while True:
try:
user_input = int(input(f"Choose your lucky number {len(lucky_numbers)+1}: "))
except ValueError:
print("Only Numbers allowed")
else:
if user_input not in range(1, 46):
print("Only Numbers from 1 to 45 allowed")
else:
lucky_numbers.append(user_input)
if len(lucky_numbers) > 5:
return lucky_numbers
print(validate_tip())
Hier ist eine Schwachstelle, dass der Benutzer erst aus der Schleife heraus kommt wenn es 6 valide Eingaben gibt.
Was ist, wenn identische Zahlen eingegeben werden?
Wie gesagt, ein klares Konzept ist nötig.