Zitate zufällig ausgeben lassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
api
User
Beiträge: 181
Registriert: Donnerstag 7. August 2008, 21:23

Hallo zusammen,

ich habe vor täglich ein zufällig gewähltes Zitat auszugeben. Die einzelnen Zitate werde ich wohl in einer Datei ablegen. Meine Frage bezieht sich nun erstmal weniger auf die Codierung, mehr auf die Art des Speicherns dieser Zitate.

Spontan würde ich sagen, dass ich diese Zitate zeilenweise in einer einfachen Text-Datei speichere und dann per Zufallsauswahl einer Zeilenzahl (zB 1-100) diese Zeile dann lese und ausgebe...
Zitat1
Zitat2
...
Das kann man ja mit Sicherheit so machen - aber vorher wollte ich doch mal fragen, wie man so etwas am besten anstellt? Gibt es gegen solch ein Verfahren irgendwelche Einwände oder macht man das i.d.R. anders?

Ich stelle mir übrigens eine Zitatesammlung so von einer Größe von ca. 500 Zitaten vor...

Was meint ihr?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Das Speichern hat (bei solch geringen Größen) erst einmal wenig mit der zufälligen Auswahl zu tun ;-) Diese kannst Du einfach im Speicher per ``random.shuffle`` oder auch ``random.choice`` erledigen. Wenn es an richtig große Datensätze bezüglich Deines Hauptspeichers geht, dann kann man sich über andere Strategien Gedanken machen.

Das direkte Einlesen einer Zeile klappt bei variabler Länge sowieso nicht; da musst Du eh die Datei Zeile für Zeile durchgehen, bis der gewünschte Index erreicht ist.

Ich würde mir auf jeden Fall mal das Format für ``fortune`` angucken; alleine schon aus Kompatibilitätsgründen zu den div. Fortune-Tools :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
api
User
Beiträge: 181
Registriert: Donnerstag 7. August 2008, 21:23

Das sieht mir doch nach einem guten Ansatz aus (fortune). :D
Antworten