Hallo,
das passt jetzt vllt. nicht ganz in diesen Bereich, aber wenigstens der Name "Idee" hat gepasst.
Also, ich bin auf der Suche nach einem Projekt, mit dem ich meine Python Kenntnisse erweitern kann und das gleichzeitig nicht zu schwer ist... Bisher habe ich das Buch "Python Ge-Packt" von Michael Weigend durchgearbeitet und verfüge somit über Kenntnisse dieses Buches.
Was sollte das Projekt sein:
- rein Softwarebasierend (keine grafischen messauswertungen etc.)
- nicht zuuu schwer
- in gewisser Weise nützlich
Ich habe schon länger überlegt, nur leider fällt mir nichts Sinnvolles ein...
Jemand eine Idee oder wenigstens eine Richtung?!
Vielen Dank!
MfG
Suche Idee zum Erlernen von Python...
Es gibt jedes Jahr den Bundeswettbewerb für Informatik. Du könntest dich daran setzen, die Aufgaben zu lösen. Vielleicht fällt dir ja dabei ein Programm ein, dass man gebrauchen kann.
Oder du baust ein Programm, dass aussagenlogische Ausdrücke einliest, auswertet, vereinfacht und die passende minimierte Schaltung dazu ausspuckt. (Ich würd da sogar als Beta-Tester herhalten)
Grüße
Panke
Oder du baust ein Programm, dass aussagenlogische Ausdrücke einliest, auswertet, vereinfacht und die passende minimierte Schaltung dazu ausspuckt. (Ich würd da sogar als Beta-Tester herhalten)
Grüße
Panke
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich fasse mich kurz, da ich schon im Wiki was dazu geschrieben habe: [wiki]Projektideen[/wiki].SchneiderWeisse hat geschrieben:Jemand eine Idee oder wenigstens eine Richtung?!
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich rate zu einem Quiz!
Aber lass den Bundeswettbewerb Informatik erstmal. Dessen Aufgaben sind teils sauschwer! Wenn du ein bisschen GUI probieren willst würde ich dir zu einem ähnlichen projekt raten wie ich es mal mit Delphi realisiert hab:
http://sdpf.sd.funpic.de/SDPF%20-%20UNS ... RAMME.html
Es ist das zweite von oben. Am besten du probierst es einfach aus, das bringt hier mehr als tausend erklärungen. Was mir dann auch noch einfallen würde, wäre ein Zahlensuchspiel.
Aber lass den Bundeswettbewerb Informatik erstmal. Dessen Aufgaben sind teils sauschwer! Wenn du ein bisschen GUI probieren willst würde ich dir zu einem ähnlichen projekt raten wie ich es mal mit Delphi realisiert hab:
http://sdpf.sd.funpic.de/SDPF%20-%20UNS ... RAMME.html
Es ist das zweite von oben. Am besten du probierst es einfach aus, das bringt hier mehr als tausend erklärungen. Was mir dann auch noch einfallen würde, wäre ein Zahlensuchspiel.
Du könntest Dir auch mal folgende Knobelaufgabe anschauen und sie a) lösen und b) ein Skript schreiben, das den umgekehrten Weg geht und solche Listen erstellt.
http://www.python-forum.de/topic-12570.html
http://www.python-forum.de/topic-12570.html
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Hrhr, Ich hab jetzt länger daran gehabt deine Lösung in Haskell zu verstehen als daran das eigentliche Problem zu lösen aber immerhinBlackJack hat geschrieben:Du könntest Dir auch mal folgende Knobelaufgabe anschauen und sie a) lösen und b) ein Skript schreiben, das den umgekehrten Weg geht und solche Listen erstellt.
http://www.python-forum.de/topic-12570.html
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Hier wäre dann die Rückrichtung in Haskell:
Die "Lösung" einfach reinpipen und heraus kommt die "Aufgabe"
Code: Alles auswählen
import List
main = interact (show . map (map (\x -> (head x, length x)) . group) . lines)
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
BlackJack, Kannst du mir mal verraten wie du zu auf so etwas kommst?
Ist das einfach nur Übung/Erfahrung mit der funktionalen Programmierung, Genialität oder schwarze Magie?
Ist das einfach nur Übung/Erfahrung mit der funktionalen Programmierung, Genialität oder schwarze Magie?
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Alles zusammen.
Im Ernst, wenn man das Stück für Stück entwickelt und immer testet ist das gar nicht so schwer. Die Entstehung: Am Anfang steht immer die `id`-Funktion die nichts macht. Merke: Wer nichts macht, macht auch nichts falsch.
Eingabe in Zeilen aufteilen (`lines`) und die Liste wieder in eine Zeichenkette umwandeln (`show`). `show` ist sozusagen das `repr()` von Haskell.
Jetzt in jeder Zeichenkette die Zeichen gruppieren.
Nun muss man nur noch von jeder Gruppe das Zeichen und die Anzahl bestimmen.
Und das war's auch schon.
Beim Lösen des Rätsels war das komplizierteste, dass `replicate` die Argumente einzeln und in umgekehrter Reihenfolge haben wollte. Das geht in Python mit `itertools.starmap()` und `operator.mul()` etwas direkter.
`data` enthält die Liste.
Im Ernst, wenn man das Stück für Stück entwickelt und immer testet ist das gar nicht so schwer. Die Entstehung: Am Anfang steht immer die `id`-Funktion die nichts macht. Merke: Wer nichts macht, macht auch nichts falsch.
Code: Alles auswählen
main = interact id
----
bj@s8n:~$ echo -e 'aaabbbb\nccddddd' | runhaskell test.hs ; echo
aaabbbb
ccddddd
Code: Alles auswählen
main = interact (show . lines)
----
bj@s8n:~$ echo -e 'aaabbbb\nccddddd' | runhaskell test.hs ; echo
["aaabbbb","ccddddd"]
Code: Alles auswählen
main = interact (show . map group . lines)
----
bj@s8n:~$ echo -e 'aaabbbb\nccddddd' | runhaskell test.hs ; echo
[["aaa","bbbb"],["cc","ddddd"]]
Code: Alles auswählen
main = interact (show . map (map (\x -> (head x, length x)) . group) . lines)
----
bj@s8n:~$ echo -e 'aaabbbb\nccddddd' | runhaskell test.hs ; echo
[[('a',3),('b',4)],[('c',2),('d',5)]]
Beim Lösen des Rätsels war das komplizierteste, dass `replicate` die Argumente einzeln und in umgekehrter Reihenfolge haben wollte. Das geht in Python mit `itertools.starmap()` und `operator.mul()` etwas direkter.
Code: Alles auswählen
from itertools import starmap
from operator import mul
print '\n'.join(''.join(starmap(mul, row)) for row in data)
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
SchneiderWeisse, wenn du es noch nicht kennst, moechte ich dir das Pythonchallenge ans Herz legen:http://www.pythonchallenge.com. Passt zwar nicht ganz zu deinem Wunsch nach einem Projekt, da man dort eher kleinere Aufgaben loest, aber man lernt noch ne Menge dabei.
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Genauso habe ich mit der Sprache begonnen.SchneiderWeisse hat geschrieben:Hallo,
das passt jetzt vllt. nicht ganz in diesen Bereich, aber wenigstens der Name "Idee" hat gepasst.
Also, ich bin auf der Suche nach einem Projekt, mit dem ich meine Python Kenntnisse erweitern kann und das gleichzeitig nicht zu schwer ist... Bisher habe ich das Buch "Python Ge-Packt" von Michael Weigend durchgearbeitet und verfüge somit über Kenntnisse dieses Buches.
Was sollte das Projekt sein:
- rein Softwarebasierend (keine grafischen messauswertungen etc.)
- nicht zuuu schwer
- in gewisser Weise nützlich
Ich habe schon länger überlegt, nur leider fällt mir nichts Sinnvolles ein...
Jemand eine Idee oder wenigstens eine Richtung?!
Vielen Dank!
MfG
SchneiderWeisse,
wie wäre es mit einem Spiel? Nicht immer ist dort eine komplexe Grafik notwendig. Ein Textadventure ist meiner Erfahrung nach ein gutes Beispiel, sich in objektorientierter Programmierung und wahlweise auch in Metaprogrammierung zu üben. Ich persönlich könnte mich auch für rundenbasierte Strategiespiele begeistern, aber ohne dass dich das Thema fesselt wirst du dich wohl schwer tun, in diese Richtung ein Projekt zu machen. Außerdem besteht die Gefahr, an der möglichen Komplexität solcher Projekte zu ersticken.
Standardaufgabe im Informatikunterricht (jedenfalls wenn man man wie ich noch Lisp gelernt hat) wäre Formeln wie "x^2 - x" einlesen zu können und davon die erste Ableitung zu berechnen (2x-1) und dann komplexe Ergebnisse zu vereinfachen. Kann auch spannend und erhausfordernd sein. Oh, einen eigenen kleinen Lisp bzw. Scheme-Interpreter zu bauen, ist eine Aufgabe der Art, wie ich sie spannend finde. Und man lernt Scheme, IMHO sollte jeder diese Sprache kennen. Ist wie Latein oder Griechisch: Wird vielleicht nicht mehr aktiv gesprochen (benutzt), aber entscheidend für die Entwicklung jüngerer Sprachen und für die Kultur der Software-Entwicklung.
Ansonsten bieten sich diverse Webseiten mit mathematischen Knobeleien an, die man dort wohl zwar eigentlich durch Nachdenken lösen soll, aber auch häufig algorithmisch ausrechnen kann. Oder wie wäre es mit einem Programm, dass zu einem gegebenen Datum das Äquivalent im Maya-Kalender (und umgekehrt berechnet). Bonusaufgabe ist dann zu berechnen, was die Welt untergeht bzw. das nächste Zeitalter beginnt (ob dazu die Welt untergehen muss ist glaube/hoffe ich umstritten ;)
Stefan
wie wäre es mit einem Spiel? Nicht immer ist dort eine komplexe Grafik notwendig. Ein Textadventure ist meiner Erfahrung nach ein gutes Beispiel, sich in objektorientierter Programmierung und wahlweise auch in Metaprogrammierung zu üben. Ich persönlich könnte mich auch für rundenbasierte Strategiespiele begeistern, aber ohne dass dich das Thema fesselt wirst du dich wohl schwer tun, in diese Richtung ein Projekt zu machen. Außerdem besteht die Gefahr, an der möglichen Komplexität solcher Projekte zu ersticken.
Standardaufgabe im Informatikunterricht (jedenfalls wenn man man wie ich noch Lisp gelernt hat) wäre Formeln wie "x^2 - x" einlesen zu können und davon die erste Ableitung zu berechnen (2x-1) und dann komplexe Ergebnisse zu vereinfachen. Kann auch spannend und erhausfordernd sein. Oh, einen eigenen kleinen Lisp bzw. Scheme-Interpreter zu bauen, ist eine Aufgabe der Art, wie ich sie spannend finde. Und man lernt Scheme, IMHO sollte jeder diese Sprache kennen. Ist wie Latein oder Griechisch: Wird vielleicht nicht mehr aktiv gesprochen (benutzt), aber entscheidend für die Entwicklung jüngerer Sprachen und für die Kultur der Software-Entwicklung.
Ansonsten bieten sich diverse Webseiten mit mathematischen Knobeleien an, die man dort wohl zwar eigentlich durch Nachdenken lösen soll, aber auch häufig algorithmisch ausrechnen kann. Oder wie wäre es mit einem Programm, dass zu einem gegebenen Datum das Äquivalent im Maya-Kalender (und umgekehrt berechnet). Bonusaufgabe ist dann zu berechnen, was die Welt untergeht bzw. das nächste Zeitalter beginnt (ob dazu die Welt untergehen muss ist glaube/hoffe ich umstritten ;)
Stefan
-
- User
- Beiträge: 16
- Registriert: Montag 9. Juni 2008, 18:20
- Kontaktdaten:
Moin!
Ich habe Python selbst gerade erst kennengelernt. In C habe ich aber ein Programm geschrieben, daß Eine Wahrheitstabelle (Digitaltechnik) mithilfe des Quine/McCluskey-Verfahrens in eine kleinstmögliche logische Funktion umwandelt.
War viel zu "knobeln" und sehr viel zu optimieren, aber im Prinzip einfach zu verstehen. War eine gute Wahl als Seminaraufgabe für C und sollte mit Python noch wesentlich schneller und einfacher gehen. Das Verfahren ist allerdings auch sehr zeitkritisch, da kann man mit Python wohl keine Preise gewinnen...
Ach ja: Hallo erstmal, hoffe mal mit Python kann man so schön einfach und schnell entwickeln, wie es auf dem ersten Blick aussieht.
Falls du Anregungen brauchst, kann ich dir den C-Quellcode vielleicht auch zur Verfügung stellen. Müßte noch auf irgendeiner Backup-CD rumfliegen...
Edit (Leonidas): Diskussion getrennt. Rest in Scheme vs. FUD.
Ich habe Python selbst gerade erst kennengelernt. In C habe ich aber ein Programm geschrieben, daß Eine Wahrheitstabelle (Digitaltechnik) mithilfe des Quine/McCluskey-Verfahrens in eine kleinstmögliche logische Funktion umwandelt.
War viel zu "knobeln" und sehr viel zu optimieren, aber im Prinzip einfach zu verstehen. War eine gute Wahl als Seminaraufgabe für C und sollte mit Python noch wesentlich schneller und einfacher gehen. Das Verfahren ist allerdings auch sehr zeitkritisch, da kann man mit Python wohl keine Preise gewinnen...
Ach ja: Hallo erstmal, hoffe mal mit Python kann man so schön einfach und schnell entwickeln, wie es auf dem ersten Blick aussieht.
Falls du Anregungen brauchst, kann ich dir den C-Quellcode vielleicht auch zur Verfügung stellen. Müßte noch auf irgendeiner Backup-CD rumfliegen...
Edit (Leonidas): Diskussion getrennt. Rest in Scheme vs. FUD.
Falls Du Linuxer bist, würde ich mir eventuell mal den TuxDroid anschauen, den kann man mittels Python API programmieren. Ein tolles "Spielzeug" das einem Spass macht um damit Python zu lernen und man kann auch nützliches damit anstellen. Oder Scripts von anderen an eigene Bedürfnisse anpassen.
Link: http://www.tuxisalive.com/
Link: http://www.tuxisalive.com/
http://sympy.org/sma hat geschrieben:Standardaufgabe im Informatikunterricht (jedenfalls wenn man man wie ich noch Lisp gelernt hat) wäre Formeln wie "x^2 - x" einlesen zu können und davon die erste Ableitung zu berechnen (2x-1) und dann komplexe Ergebnisse zu vereinfachen. Kann auch spannend und erhausfordernd sein.