verständnisproblem bei Python!?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo erst mal! Ich möchte gern mit dem Programmieren auf und für das Raspberry anfangen.
    Ich habe früher schon viel mit einem C Compiler für PIC Prozessoren gearbeitet und wohl etwas verwöhnt was das an belangt.

    Nun habe ich auch schon das eine oder andere gelesen und habe mitbekommen das die meisten Python zum Programmieren benutzen. jetzt habe ich mir die Version 2 und drei auch runter geladen und auch die ersten if else Projekte probiert und muss sagen irgendwie fehlt mir da etwas. :s
    Gibt es Python auch als Compiler? das ausführen von diesen Skripten ist irgendwie nichts für mich, ich möchte die Zeilen doch nicht immer wieder eingeben.? Oder bin ich da irgendwie falsch? hab ich da irgend etwas übersehen?
    Kennt hier jemand ein einfachen Hallo Welt Tutoriell für das GPIO?

    Ich hoffe von euch da jetzt einen Schups in die richtige Richtung zu bekommen.

  • Da hast Du wohl wirklich ein Verständnisproblem. Python ist eine Scriptsprache. Es gibt zwar Tools, die aus dem Script eine ausführbare Datei machen, aber das sind eher Krücken. Die machen nichts anderes, als den Inerpreter (So wird der "Übersetzter" für eine Scriptsprache genannt) und das Script zusammenzupacken und es dann auszuführen.
    Du hast bestimmt Python in der Kommandozeile ausgeführt, da wird es dann entsprechend Zeilenweise abgearbeitet. Normalerweise erstellt man aus den einzelnen Eingaben eine Textdatei (Script) die man dann dem Interpreter zum Ausführen übergibt.
    Hier im Forum gibt es eine ganze Sektion für Python, da dürftest Du fündig werden: https://www.forum-raspberrypi.de/Forum-python

    Um relativ einfach einzusteigen, benutzt Du am besten Idle (ist bei Raspbian schon drauf), dass ist eine Entwicklungsumgebung für die grafische Oberfläche. Du kannst aber auch einen Texteditor unter der Kommandozeile nutzten.

  • Du kannst auch ganz normal Klassen und alles schreiben, im Grunde funktioniert das alles wie bei einer kompilierten Sprache, aber bloß ohne kompilieren und dass der komplette Quellcode immer dabei sein muss (dafür aber keine Binärdatei).
    Das direkte ausführen im Interpreter ist eher ein Test/Debug-Feature, nicht die normale Umgebung. Teilweise auch sehr praktisch, wenn man schnell und einfach Komplexe Dinge tun möchte für die es eine Bibliothek gibt (z.B. Matrix-Mathematik). Dann kann man die Bibliothek im Interpreter laden und das Problem hinschreiben und hat sofort die Antwort.

  • Also der IDIE gefällt mir schon recht gut, was mich halt nervt ist immer noch dieser Komandozeilen Stile. Ihr schreibt doch auch komplexe Programme und hierfür schreibt Ihr doch sicher nicht jedes mal alles neu? oder man will mal etwas in einer Zeile ändern dann gibt man doch nicht den Text wieder und wieder neu ein?

    Ich komme mir gerade völlig blockiert vor, als hätte ich die dümmsten Fragen hier im Forum!?

  • Ob Python eine reine Scriptsprache ist wie raspiprojekt schreibt, wage ich zu bezweifeln. imho gibt es eh keine Definition. Siehe folgende Diskussion:
    Für mich ist eine ''Textdatei (Script)'' mit einem simplen ''print('Hallo Welt')'' kein Skript sondern ein vollständiges Programm.
    http://www.python-forum.de/viewtopic.php?…t=skriptsprache


    thomas223
    Du kannst in der IDLE eine neue Datei erstellen und dies auch speicher, öffnen, bearbeiten etc...
    Es gibt zik IDE, welche für Python geschrieben wurden oder Python unterstützen. Im Laufe der Zeit wirst du dich an eine festlegen.

    • Offizieller Beitrag

    Du öffnest einen Texteditor, schreibst den Code da rein. speicherst ihn und führst ihn dann mit

    Code
    python SPEICHERNAME

    aus ;)

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • bootsmann: es geht ja nicht um die "Art des Programmes" sondern um die Art der Sprache. Allgemein ist eine "Skriptsprache" eine (standardmäßig) interpretierte Sprache wie Python, Ruby, Perl,...
    Dagegen stehen standardmäßig kompilierte Sprachen wie C(++), Fortran, ...
    Dann gibt es noch Hybriden wie Java die in ein Zwischending kompiliert werden, welches dann interpretiert wird.

    Grundsätzlich kannst du jede Sprache kompilieren und dann als binärprogramm ausführen (nicht für alle ist der Compiler dafür schon geschrieben) und du kannst auch einen Interpreter für alle Sprachen schreiben, auch wenn das für Sprachen wie C++ keine nette Aufgabe wird. Daher ist die Unterscheidung tatsächlich nur auf Basis des Standardweges wie die SPrache verwendet wird. Und nach dieser Definition ist Python ohne jede Frage eine Skriptsprache.

    Bemerke: Skript heißt hier nicht "hingeschmierter Spaghetticode um irgendeinen Arbeitsablauf zu automatisieren" und hat generell keine abwertende Bedeutung, sondern betont die Interpretierbarkeit der Sprache, die in Skripten (hier gemeint als hingeschmierter Spaghetticode um...) benötigt wird.

    Thomas: wie ich schon schrieb, es funktioniert wie eine kompilierte Sprache, bloß ohne kompilieren, du schreibst deine Klassen in den Dateien, und kannst diese dann im Hauptprogram laden, das auch wieder in einer Datei steht. Du arbeitest normalerweise NICHT im Interpreter.

  • Ich glaube ihr habt ihn ein wenig fehlinterpretiert :fies:


    Nun habe ich auch schon das eine oder andere gelesen und habe mitbekommen das die meisten Python zum Programmieren benutzen. jewetzt habe ich mir die Version 2 und drei auch runter geladen und auch die ersten if else Projekte probiert und muss sagen irgendwie fehlt mir da etwas. :s
    Gibt es Python auch als Compiler? das ausführen von diesen Skripten ist irgendwie nichts für mich, ich möchte die Zeilen doch nicht immer wieder eingeben.?

    Das hört sich für mich so an als hättest du den Code in der Python-Konsole eingegeben, kann das sein? Da muss man es Zeilenweise eingeben, ja.
    Zum Entwickeln is das nicht schlecht, auch um mal etwas auszuprobieren usw weil man da auch direkte Rückmeldungen kriegt etc. Aber allgemein "Script-sprachen" schreibt man eigentlich in Dateien.
    Also einfach eine Textdatei oder allg. leere Datei erstellen, oben in der erste Zeile den sog. Shebang setzen und da drunter dann den Programm-Code, genau so wie man es mit jeder anderen Programmiersprache macht also auch so wie bei C usw das steht ja auch in Dateien :fies:

    ..Man muss auch nicht unbedingt einen Shebang setzen sofern man die Datei direkt dem Interpreter übergibt (siehe dbv's Beispiel). Also entweder Datei ausführbar machen und einen Shebang setzen, oder Datei selber dem Interpreter übergeben.
    Dieses "ausführbar machen" hat absolut gar nichts mit dem was raspiprojekt erwähnte, zu tun.

    Zu der Sache mit Kompilieren:

    Der Python-Interpreter erstellt von jedem Script eine sog. "byte code" Datei (*.pyc), also compiliert das Script und führt es dann erst aus. Dadurch wird es schneller.
    Das gescheit aber automatisch und die "Textdatei" muss auch bestehen bleiben.
    Siehe dazu Googlesuche nach: python what is .pyc


    Kennt hier jemand ein einfachen Hallo Welt Tutoriell für das GPIO?

    Auch hier empfehle ich eher eine Googlesuche, da es schätzungsweise 1000 verschieden gute Anleitungen gibt...
    Aber ich empfehle dir auch einen Blick auf meine ausführlichen Beschreibungen bezüglich Interrupts: FAQ --> Nützliche Links / Linksammlung --> Interrupt

  • Super jetzt mit dem Text Editor macht das ganze einen sin.

    wenn es jetzt noch einen Editor gibt der für schöne Zeilenumbrüche, bunte Kommandos und vielleicht Autovervolständigung sorgt kann ich glücklich werden, zumindest für heute!!!

    Danke vielmals!

  • Nein ihr spracht bisher nicht von der Python-Console und Details wie das ganze normalerweise abläuft nanntet ihr bisher auch nicht so richtig :fies:

    Ihr habt euch bisher nur darüber unterhalten was ein Interpreter ist und habt das auf die Goldwaage gelegt... Und das was raspiprojekt beschrieb sorgt aus meiner Sicht erst recht für Verwirrung und ist teilweise eigentlich auch nicht korrekt, da zB Cython keine Krücke ist, aber nunja, das sprengt IMHO das bisherige Thema hier - da der TE bisher nur dachte er müsse Python jedes mal Zeile für Zeile eingeben ... das hatte glaub ich erst mal nichts mit compilieren zu tun.


    Bezüglich *.pyc:
    Ja das macht er immer - auch für Module die man importiert.
    Aber die *.pyc wird nur ein mal erstellt und erst dann neu erstellt wenn sich die Source-Datei verändert.


    //EDIT

    wenn es jetzt noch einen Editor gibt der für schöne Zeilenumbrüche, bunte Kommandos und vielleicht Autovervolständigung sorgt kann ich glücklich werden, zumindest für heute!!!

    Für Windows, MAC oder direkt auf dem PI (Linux) ?

    raspiprojekt und bootsmann nannten bereits eine beiläufig: IDLE
    Das gibts für alle Plattformen

    Es geht aber auch irgend ein anderer Editor der fürs Programmieren vorgesehen ist, wie zum Beispiel UltraEdit, Proton oder sogar Eclipse... Oder direkt über die Linux Konsole zB nano - Hauptsache er hat nen Syntax-Highlight für Python ;)

  • Heute probiere ich noch in Windows, da mir noch die SD Karte und das HDMI Kabel für den PI fehlen, hab aber auch gesehen das Python auch auf Android läuft und das ist dann ja schon ein Werkzeug für alles.

    Kann man eigentlich ein fertiges Projekt hinterher in eine EXE oder eine APK Compelieren und diese hinterher auch auf jeden anderen Gerät zum laufen bringen oder braucht man immer Python auf dem ausführendem Rechner?

  • Man braucht immer Python auf dem ausführenden Rechner.

    Ok, nein, es gibt exotische Möglichkeiten, aber damit möchtest du dich (noch) nicht beschäftigen

    .exe ist übrigends Windows-only unter Linux hast du keine .exe-Dateien
    APKs können nur mit Java (und C# oder?) entwickelt werden.


  • Heute probiere ich noch in Windows, da mir noch die SD Karte und das HDMI Kabel für den PI fehlen, hab aber auch gesehen das Python auch auf Android läuft und das ist dann ja schon ein Werkzeug für alles.

    Du kannst den PI auch headless , also ohne HDMI Kabel / Monitor / TV betreiben. Siehe dazu hier: FAQ --> Ersteinrichtung des Raspberry Pi's ohne Tastatur+Monitor

    Aber eine SD benötigst du auf jeden Fall.

    Kann man eigentlich ein fertiges Projekt hinterher in eine EXE oder eine APK Compelieren und diese hinterher auch auf jeden anderen Gerät zum laufen bringen oder braucht man immer Python auf dem ausführendem Rechner?

    Eine EXE gibt es nur unter Windows und APK gibts nur für Android.
    Auf beiden Plattformen kann man aber problemlos Python haben und brauch es daher nicht explizit kompilieren. Python ist Plattformunabhängig.
    Man kann Es auch im klassischen Sinne kompilieren, einfach mal selbst nach "Compile Python" googlen.
    Dazu sagten wir hier aber auch schon was - also bitte noch mal die bisherigen Beiträge lesen und wenn dann Fragen sind bitte spezifischere/genauere Fragen stellen. Danke.

  • OK wenn die Möglichkeit besteht reicht mir das fürs erste Danke.
    Das der IDLE einen Editor hat habe ich auch jetzt erst gemerkt somit kann ich damit jetzt auch gut arbeiten, hatte vorher auch nur die Sell gesehen.

    Arbeitet den hier jemand mit einen Editor ähnlich IDLE der auch Debugging integriert hat? Oder vielleicht besser gefragt der beim Debuggen gut funktioniert und gut verständliche Fehlermeldungen aus gibt?


  • Und das was raspiprojekt beschrieb sorgt aus meiner Sicht erst recht für Verwirrung und ist teilweise eigentlich auch nicht korrekt, da zB Cython keine Krücke ist,

    Na wenn das nicht noch verwirrender ist. Cython ist nicht Python! Der Syntax ist vielleicht ähnlich, mehr auch nicht.
    Automatisch zusammengefügt:


    Arbeitet den hier jemand mit einen Editor ähnlich IDLE der auch Debugging integriert hat? Oder vielleicht besser gefragt der beim Debuggen gut funktioniert und gut verständliche Fehlermeldungen aus gibt?

    Der Pythoninterpreter selbst hat ein sehr gutes Debugging. Also sobald Du einen Fehler machst steht im (englischen) Klartext da, was Du wo falsch gemacht hast.

  • raspiprojekt: Beachte den Kontext. Du schriebst es gäbe "unechte" Compiler aber die seien Krücken, ich erwähnte in diesem Zusammenhang Cython was aber mehr Performance bietet als CPython - das es da gewisse Unterschiede gibt kann man über den Link den ich angab nachlesen..

    Verwirrend ist da was du schriebst: "Es gibt zwar Tools, die aus dem Script eine ausführbare Datei machen, aber"

    Eine ausführbare Datei wird es bereits durch 'chmod +x'

    Verwirrend wirds dann auch wenn man das einzeln zerbröseln und richtigstellen muss - da es der TE wie man sieht nicht verstanden hat und als Anfänger auch die Unterschiede nicht kannte.

  • Das wird doch schon wieder albern. Wenn der TE nach Compilern fragt und ich darauf antworte und das Wort ausführbar benutze, dürfte klar sein was ich meine. Du kannst kein Pythonscript ausführen, wenn kein Pythoninterpreter da ist. Und die Krücke die ich ansprach ist, dass der Interpreter einfach mit in das von selbst lauffähig sein sollende (besser so?) Programm gepackt wird.

  • Das ist "Das Python-Programm".
    (Pseudo-)Technisch: Der Interpreter interpretiert Zeile für Zeile den von dir eingegebenen Code und fuhrt das aus.
    Praktisch: der führt dein Programm aus. Unter Linux mit "python dein_programm.py"
    Wenn du nur "python" startest, dann kannst du interaktiv mit Python arbeiten, also direkt Dinge darein schreiben die direkt ausgeführt werden

    Einmal editiert, zuletzt von Horroreyes (17. September 2015 um 14:36)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!