liebe Python-Gemeinde, lieber Blackjack, vielen Dank !!
ich habe mich für die Variante "Eingabe aller Zahlen entschieden, das ist sehr einfach und funktioniert wunderbar:
zum Beispiel:
lottozahlen = list([2,5,33,22,3]) #die bereits vorhandenen Zahlen
print('Lottozahlen durch Leerzeichen getrennt eingeben:')
for string in input().split():
lottozahlen.append(int(string))
print(lottozahlen)
#die Ausgabe in der shell:
Lottozahlen durch Leerzeichen getrennt eingeben:
2 33 32 43 45 1 7
[2, 5, 33, 22, 3, 2, 33, 32, 43, 45, 1, 7]
Die Behandlung von Fehleingaben fürchte ich, übersteigt meinen momentanen python-Horizont, ebenso die Arbeit mit importierten Modulen.. jetzt habe ich erstmal genug Material zum Lernen, und zu gegebener Zeit wäre ich froh, Euch wieder fragen zu dürfen.
Martin.
input bei liste
Hi!
Bei den Lottozahlen kann u. a. folgendes passieren (in Klammern Möglichkeiten, das zu testen):
* zu viele oder zu wenige Zahlen ( len(Liste oder Menge) )
* Benutzer geben keine Zahlen sondern irgend etwas anderes ein (string.isdecimal())
* leere Eingabe, also einfach RETURN gedrückt ( len(eingabe) )
Damit hättest du dann schon eine Reihe von Fehlern abgefangen.
Wenn du die Lottozahlen sortiert ausgeben möchtest, dann kannst du lottozahlen.sort() probieren.
Xe
Wenn du mit einer Menge (set) arbeitest statt einer Liste, dann hättest du schon mal keine doppelten Einträge.haeuslermartin hat geschrieben:Die Behandlung von Fehleingaben fürchte ich, übersteigt meinen momentanen python-Horizont,
Bei den Lottozahlen kann u. a. folgendes passieren (in Klammern Möglichkeiten, das zu testen):
* zu viele oder zu wenige Zahlen ( len(Liste oder Menge) )
* Benutzer geben keine Zahlen sondern irgend etwas anderes ein (string.isdecimal())
* leere Eingabe, also einfach RETURN gedrückt ( len(eingabe) )
Damit hättest du dann schon eine Reihe von Fehlern abgefangen.
Wenn du die Lottozahlen sortiert ausgeben möchtest, dann kannst du lottozahlen.sort() probieren.
Xe
In diesem Fall nimm doch die anfängerfreundliche Variante (dafür ist sie da). In der Zeilehaeuslermartin hat geschrieben:Die Behandlung von Fehleingaben fürchte ich, übersteigt meinen momentanen python-Horizont
Code: Alles auswählen
lottozahl = int(eingabe)
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Hm... ich sehe hier der *einzelnen* Eingabe von Zahlen keinen besonderen Vorteil eines sets. Ich kann genauso gut auf der Liste prüfen, ob die Zahl schon darin enthalten ist (``value in values``), bevor ich sie hinzufüge. Abgesehen von der schnelleren Laufzeit für das Prüfen bei sets, müsste man da ja analog vorgehen. Denn einfach einfügen und *danach* die Länge prüfen halte ich für umständlich. Dass ist eher dann sinnvoll, wenn der Benutzer alle Zahlen auf einmal eingibt und diese dann ausgewertet werden. Insofern ist set sicherlich nicht verkehrt, aber auch kein Muss in diesem Kontext.kbr hat geschrieben: (das lässt sich mit Sets zwar umgehen, aber dabei lernt man nichts).
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Danke für die Ergänzung, das sehe ich eigentlich auch so. Den Hinweis hatte ich mit aufgenommen, da Sets weiter oben erwähnt wurden; besser aber hätte ich den eingeklammerten Text weg gelassen — der verwirrt im Grunde nur.Hyperion hat geschrieben:Insofern ist set sicherlich nicht verkehrt, aber auch kein Muss in diesem Kontext