Mhhhm any Vorschläge?

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
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Hallo liebes Forum,

meine Kenntisse beziehen sich auf die leichtesten Grundlagen (Kontrollstrukturen, Datentypen und die dazugehörigen Methoden, Wie man eiene Funktion definiert). Um mein theoretisches Wissen nach praktisches Wissen umzuwandeln, würde ich gerne ein etwas größeres Programm schreiben. Nun habe ich ein 20 zeiliges Programm geschrieben, dass Namen verschlüsselt. Nun hätte ich aber gerne mehr powerful Programme geschrieben. Hätte jemand Programmvorschläge?

Danke!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Na, da gibt es die üblichen Verdächtigen, als da wären simple Spielchen (Zahlenraten, Tic Tac Toe, usw) oder eben simple CRUD-Sachen wie Adressverwaltungen o.ä.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

UM es einzuschränken. Wissen basiert bisher nur auf CommandLine (Windows Konsole). Wie groß ist der Umstieg auf 'Benutzerdefinierte Oberflächen'?

Des mit ProjetEuler sind kleine Probleme und nicht große, denke ich.
BlackJack

@Gary123456: Ob Project Euler kleine oder grosse Probleme sind, hängt glaube ich von der Lösung ab, die man für ein Problem findet. Die Lösungen mögen manchmal mit wenig Quelltext erreichbar sein, da muss man aber ab und zu viel Gehirnschmalz reinstecken. (Vielleicht echte Mathematiker nicht so, aber normale Leute schon. :-))
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Ui das war ne Ansage. Werds mir mal genauer ansehen. :)
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Naja sind doch eig alles mathematische Aufgaben. Bin 15 und kann , so glaube ich recht viele rechnen, aber nicht alle. Das sind aber für mich noch keine richtigen Programme. Kennt jemand ein Spielprinzip, das man per Commandline proggen könnte? :K
petersonx
User
Beiträge: 3
Registriert: Sonntag 27. Januar 2013, 23:23
Wohnort: Ulm, Germany
Kontaktdaten:

Ich hätte einen Vorschlag. Auf PyVideo.org hat es viele tolle Python Tutorials. Was ich toll fände wär ein Programm/Daemon, was sich die aktuellsten (nur letzte 2 Wochen) HD Filme automatisch in einen lokaken Ordner runterlädt, sobald sie erscheinen. Ohne GUI.
Na, wer hat Lust auf so einen permanent laufenden Hintergrund Python Prozess?
Happy coding...
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Schlecht ist die Idee sicher nicht. Aber für mich glaub ich eher nicht. Ich überleg mir jetzt mal ein Spielprinzip.
BlackJack

@Gary123456: Wenn es ein Spiel werden soll, dann gibt es sicher viele Brett- und Kartenspiele die man sich anschauen kann, und die auch mit Textein- und ausgabe umsetzbar sind. Es gab hier gerade erst das Thema Ansatzproblem Reversi. Wenn Du die eigentliche Spiellogik und die Benutzerinteraktion sauber trennst, kann man da später auch eine GUI drauf setzen.

Mir ist aus dem ersten Beitrag nicht ganz ersichtlich, ob Du Dich schon mit objektorientierter Programmierung (OOP) auseinander gesetzt hast!? Das ist IMHO ein Thema was man *vor* grösseren Programmen drauf haben sollte. Etwas was kompliziertere Datenstrukturen als zwei bis drei Stufen verschachtelte Container aus den Grunddatentypen und vielleicht noch die aus dem `collections`-Modul benötigt, ist ohne Klassen auf Dauer nicht mehr gut verständlich und damit auch schlecht wart- und erweiterbar.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Nun - sehr gute Frage. Darauf antworte ich erst und werde auch noch was dazu sagen: NEIN.

Meine erste Programmiersprache war XPROFAN. Da hatte ich Grundlagen drauf und konnte auch etwas API. Da diese Sprache ereignisorientiert war, musste ich kein OOP anwenden. Auf Dauer wurde der Code recht unsauber, sprich man konnte einzelne Sektionen nicht mehr so gut verstehen und lesen. Mein Problem mit der Sprache war dieses: Der Code wurde mir zu 'langweilig'. Es war ziemlich immer dasselbe, das ich geproggt habe, da man mit dieser Sprache nicht von Grund auf alles machen konnte. Vorallem die Registryfunktionen waren schlimm, denn XPROFAN basiert auf 32bit und kann somit 64bit Schlüssel nicht korrekt auslesen. Ich bin 15 und bin gar nicht mal interessiert in Spieleprogrammierung (Finde diese Art von Programmierung sogar langweilig!). Mein Themengebiet ist Registry, Netzwerk und als Hobby entferne ich Malware. (Bin gerade in einem englischen 'AntiMalwareBoard' in Ausbildung zu einem sogenannten 'Malwarefighter'). Da ist es mir wichtig, Malware intern zu kennen, sprich den Programmcode eines Trojaners (so weit wie möglich zu verstehen) und natürlich auch Tools dagegen zu schreiben. Da Python eine einfach und recht Hohe Sprache ist, habe ich mich für diese entschieden. Ich habe ein festes Ziel. Ich will mir das große Abenteuer vornehmen, das Herz des Systems zu untersuchen. Und Skriptsprache war auch bewusst gewählt, mit kleinen Skripts kann man schon sehr viel erreichen. Daraus folgt: Quantität!=Qualität. Der Syntax zu XPROFAN ist ganz anders, ähnliche Befehle wären nur len, if, else, while and print. Sonst ist alles anders.

Ich glaube ich versuch mir einen mathematischen Taschenrechner aufzubauen. Importiere ein Modul und verwende deren Funktionen. Gute oder schlechte Idee?
BlackJack

@Gary123456: Weil ereignisorientiert darum kein OOP ist Unsinn. Gerade für GUI-Programmierung kommt in der Regel beiden zusammen.

Zu XPROFAN habe ich auf die schnelle nichts gefunden ausser der fürchterlich nach 90er Jahren aussehenden Webseite mit Frames und einem GIF als gekacheltem Hintergrund, aber Wikipedia behauptet die Sprache sei objektorientiert und von BASIC und Object Pascal beeinflusst. So etwas wie Bildschirmfotos oder eine leicht zugängliche Dokumentation oder einen Einsteigerkurs gibt es auf der Seite nicht.

Wenn Du ganz allgemein Malware analysieren willst, musst Du Dich mit Maschinensprache und den nötigen Werkzeugen zur Fehlersuche in Maschinenspracheprogrammen auseinandersetzen.

Beim Taschenrechner ist die Frage wie Du den umsetzen willst. Im einfachsten Fall braucht man für einen recht mächtigen „Taschenrechner” gar nichts zu implementieren, denn man kann sehr gut mit der Python-Shell rechnen.

Wenn man einen Tisch-Taschenrechner als Programm nachbilden möchte, dann ist das schon ein grafisches Programm und selbst für einfache Modelle schon erstaunlich komplex, denn selbst die können Punkt- vor Strichrechnung, was bereits etwas nachdenken erfordert.

Und wie gesagt: Wenn man in Python etwas grösseres programmieren möchte, dann sollte man OOP können. Sonst wird es schnell unübersichtlich.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Ich habe nicht behauptet, dass man mit XPROFAN nicht oop programmieren kann. Das ist nebensächlich in dieser Programmiersprache. Habe jetzt auch was fenomenales gesehen: Man kann mit wenigen Modulen sehr viel über das Betriebssystem auslesen. Sowas gibt es in XPROFAN nicht. Modularisierung behersche ich jetzt (ist ja recht leicht). Nun werde ich mich demnächst der objektorientierten Programmierung zuwenden. Nur gibt es komischerweise im Galileo Computing Buch 100 Seiten über Datentypen. Davon habe ich knapp an die 60% schon durchgelesen. Danach gehts zum kleinen Thema Dateien und danach zu Funktionen. Danach wird OOP beigebracht. Weiss jemand, ob die Angehensweise im Buch gut aufgeteilt ist, oder soll ich zuerst Funktionen , dann OOP anschauen und dann die Sachen, die eher am Anfang besprochen wurden?
BlackJack

@Gary123456: Da am Anfang normalerweise Grundlagen kommen, macht es Sinn auch damit anzufangen. Buchautoren denken sich ja in der Regel etwas bei der Reihenfolge der Themen im Buch. Wenn da also nicht irgendwo steht in welcher Reihenfolge man das Buch durcharbeiten kann oder soll, dann ist es üblicherweise linear gedacht.

Falls es sich um das „umfassende Handbuch” handelt, würde ich mich nach einem anderen Buch umsehen. Insbesondere zum Thema OOP steht in der frei verfügbaren Version teilweise Unsinn, jedenfalls wenn es um Python geht.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Ja ist das "Umfassende Buch", Jedoch in Bücherfassung. Werde mir das mal ansehen. Danke!
BlackJack

@Gary123456: Ob OOP in Python nun auf einer Webseite oder auf Papier schecht erklärt wird, macht keinen Unterschied.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Das ist mir schon klar :lol:
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Naja hab mir jetzt den größten Teil durchgelesen. Ich finde den größten Teil eher langweilig. Das Vorwissen habe ich eh schon, was Datentypen genau sind. Ich glaube ich gehe jetzt zu Funktionen über und zu guter Letzt in die Objektorientierte Programmierung.
Antworten