Manchmal weiß man als Anfänger einfach nicht, was man machen könnte, um Python-Grundlagen zu lernen. Meist ist es einfach am Besten, ein nicht allzu schweres Projekt anzufangen oder bei einem solchen Projekt mitzuarbeiten. Hier ist eine Sammlung von Projekten, bei denen man ganz einfach einsteigen kann.
Für alle anderen, die schon länger mit Python programmieren und die ersten Vorschläge langweilig finden, gibt es weiter hinten anspruchsvollere Ideen.
Wenn ihr eine dieser Ideen umsetzt, postet doch das Programm oder einen Link zum Code im Forum, damit alle was von haben und es fehlerfrei gemacht/verbessert werden kann. Wenn es besonders gut ist/wird, könnte man es hier als Beispiel-/Lehrscript posten.
Das Adressbuch
Eines der Grundlegenderen Projekte ist das Adressbuch, bei welchem man gut lernen kann, wie man mit Dateneingaben umgeht und Daten verwaltet. Dabei kann man die Daten ganz einfach mit pickle speichern oder auch, wenn es etwas anspruchvoller sein soll, in SQL-Datenbanken wie SQLite, MySQL oder PostgreSQL speichern. Alternativ kann man sich an objektorientiere Datenbanken wie die ZODB oder Durus wagen. Zu guter letzt kann man noch eine grafische Oberfläche mit einem der vielen verfügbaren Toolkits machen.
Die Checkliste / To-Do-Liste
Ein weiteres, simples Projekt ist das Erstellen eines Programmes, welches Checklisten verwaltet. Dabei ist wie beim Adressbuch die Möglichkeit gegeben, ein Datenformat zu erfinden, aber es ist ebenso möglich, die Checklisten in ein bereits existierendes Format wie YAML oder JSON zu speichern. Das ist auch eine gute Gelegenheit, um sich mit SQL-Datenbanken und ORM-Systemen auseinanderzusetzen. Zuerst müsste man sich auf das Speicherformat festlegen. Der nächste Schritt wäre nun die Programmierung eines Programmes, welches die Checkliste anzeigt. Dieses wird nun so weit erweitert, dass es die Checkliste auch speichern kann. Nun noch eine Möglichkeit machen, die Einträge in der Checkliste als erledigt abzuhaken und die erste, simpleste Version des Checklisten-Programmes ist fertig. Zur Übung kann man dieses Programm um eine simple grafische Oberfläche erweitern, in der man über Checkboxen anklicken kann, ob ein Eintrag erledigt ist oder nicht. Alternativ kann man auch eine Weboberfläche programmieren, in welcher genau die gleichen Möglichkeiten geboten werden. Eine weitere Erweiterungsmöglichkeit ist das Setzen von Prioritäten der einzelnen Einträge, die Darstellung des Fortschritts, eines Fäligkeitsdatums etc.
Hangman
→ Das kann man mit wenig Wissen als Minispiel machen, aber auch sehr erweitern.
Mau Mau
→ Nicht so schwer zu realisieren, aber mit ner ordentlichen KI genug, um ne Weile was zu tun zu haben.
Spirograph
Symetrische Kreisformen
→ Gut für Graphiker und Anfänger, da es die Formel schon gibt. Mehr unter Wikipedia
Langton-Ameisen
In Richtung Game of Life.
Hamiltonweg
Springer auf variabel großem Feld.
→ Eher für die Spezialisten.
Worträtselgenerator
Nimmt Liste von Wörtern und kreuzt sie möglist oft und füllt die Zwischenräume evtl. mit beliebigen Buchstaben, sodass Kreuzworträtsel oder Wort-Such-Buchstabenwürfel entstehen.
→ Ebenfalls beliebig kompliziert realisierbar.
Anzeigeform von Namen in VCards ändern
Ich habe hier eine ganze Reihe VCards 'rumliegen. In ungefähr der Hälfte davon ist der Name folgendermaßen formatiert: Mustermann, Max. In der anderen Hälfte heißt's Max Mustermann. Projektidee: Ein Tool, das automatisch die Formatierung der Namen ändert, damit das einheitlich ist.