Ausführen = gleichzeitig speichern ? is doch doof...

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
adr1an0
User
Beiträge: 10
Registriert: Sonntag 13. Januar 2019, 13:52

Hallo,

ich bin ein blutiger Anfänger und versuche meine Masterarbeit (Maschinenbau) mit Phython zu schreiben. ich komme einfach nicht drum herum.
Ich benutzte Anaconda und Spyder3.3.2 (Phyton 3)

Ich glaube ich habe schon mal einen Beitrag erstellt, jedoch kann ich es nicht finden. Deswegen versuche ich es jetzt ein zweites mal.


Immer wenn ich meinen Code ausführe (und es keine Syntaxfehler enthält) wird meine Datei.py automatisch gespeichert.
Das ist ziemlich blöd weil ich oft neue Sachen oder Befehle ausprobiere und igwann nach 3 Ausführungen man mit StrgZ nicht mehr an seine ursprüngliche Datei kommt.

Kann man das igwie abstellen, so dass man manuell , wie zB bei Word, speichert ?

Gruß
Adrian
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

also grundsätzlich läuft das so, dass der Python (P-Y-T-H-O-N, nicht Phyton oder Phython) Interpreter eine Datei einliest und diese dann ausführt. Ich kenne keine Python-Editor / IDE, der Quellcode aus dem RAM liest und diesen dann ausführt.

Es gibt aber durchaus Editoren, die "unlimited undo" bietet. Alternativ könntest du auch auch ein Versionskontrollsystem nehmen, mit dem du auf beliebige vorherige Versionsstände zurück kannst. Was IMHO aber eher unpraktisch ist, wenn man viele kleine Änderungen macht.

Gruß, noisefloor
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Wenn man oft neue Sachen ausprobiert, könnte man das auch in einem oder mehreren ”Wegwerfskripten” machen und es erst in das Programm einbauen wenn es funktioniert.

Gerade bei einer Masterarbeit würde ich aber auf jeden Fall zu einer Versionskontrolle raten. Da kann man dann jederzeit die Änderungen wieder verwerfen, oder auf alte Stände zurück gehen, oder Branches oder Clones anlegen und die zerbasteln wie man lustig ist um Erkenntnisse zu gewinnen.

Für die Programmentwicklung finde ich Spyder auch nicht wirklich gut geeignet. Das ist eher etwas um zum Beispiel Datensätze interaktiv zu erforschen und zu bearbeiten, oder Bruchstücke für ein grösseres Programm explorativ zu entwickeln, aber das Endprodukt darin laufen lassen würde ich nicht. Da muss man ja jedes mal den Kernel für Neustarten, sonst läuft man Gefahr, das Programmläufe nicht reproduzierbar sind weil noch alte Namen und Werte von vorherigen Läufen in der Gegend herum lungern. :-)
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Da du ja schon Anaconda verwendest, schau dir mal Jupyter Notebooks oder das Jupyter Lab an.
https://jupyter.org
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
sls
User
Beiträge: 480
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Country country = new Zealand();

Hat Anaconda denn keine lokale Historie? Bei Intellij bspw. werden in konfigurierbaren Intervallen Sicherungen erzeugt, die ich jederzeit wieder übernehmen kann. Selbst wenn ich ausversehen Dateien oder ganze Projektordner lösche, kann ich diese über die History wieder herstellen. Das hat mir schon oft den Arsch gerettet.
When we say computer, we mean the electronic computer.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

@sls: anaconda ist eine Python-Distribution mit Paketverwaltung. Da kommt das Konzept einer lokalen Historie nicht zum tragen. Spyder ist hingegen eine IDE.
Benutzeravatar
sls
User
Beiträge: 480
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Country country = new Zealand();

@__deets__: oops, eigentlich meinte ich auch Spyder.
When we say computer, we mean the electronic computer.
adr1an0
User
Beiträge: 10
Registriert: Sonntag 13. Januar 2019, 13:52

Hallo Leute,

vielen Dank für eure Antworten.

@thomasL
danke werde ich mir anschauen.
aber da mein Betreuer mit Spyder arbeiten will, muss das wohl nehmen .

@_blackjack_
ja das ist wohl die einzige Option , aber userfriendly ist das igwie nicht, stell dir vor du schreibst ein Text in Word muss für jeden Abschnitt diese Datei unter einen anderen Namen speichern.

Ciao
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

adr1an0 hat geschrieben: Donnerstag 7. Februar 2019, 16:23 @thomasL
danke werde ich mir anschauen.
aber da mein Betreuer mit Spyder arbeiten will, muss das wohl nehmen.
Er will wohl, weil er nix anderes kennt, sehr schlechte Voraussetzungen für dich.
Jupyter Notebooks sind mittlerweile DAS Medium für wissenschaftliche reproduzierbare Arbeiten mit Python, Julia und R.
Selbst wenn eine IDE absolut erforderlich ist, gibt es da mit Pycharm oder Visual Studio Code wesentlich bessere als Spyder.
Aber egal, deine Arbeit, dein Leben, deine Zukunft. In deiner Hand.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@adr1an0: Die Analogie verstehe ich nicht. Wenn Du Dir in einer Textverarbeitung durch experimentelle Umformulierungen und Umstrukturierungen das Dokument so verbastelst das Du mit Undo nicht mehr auf den letzten Stand zurück kommst der noch irgendwie brauchbar war, wäre das doch genau die gleiche Situation. Das würde man doch auch durch kopieren des Dokuments in eine zweite Datei lösen wo man nach Herzenslust experimentieren kann, die man aber auch wieder verwerfen kann wenn die Idee die man gerade darin ausprobiert nicht funktioniert. Und wenn sie funktioniert, übernimmt man die Änderungen in das Dokument was man am Ende tatsächlich abgeben/ausdrucken/in ein PDF umwandeln/verlegen lassen/… möchte.

Und sinnvollerweise macht man das nicht durch kopieren von Dateien sondern mit einer Versionsverwaltung. Dann hat man nur die tatsächlichen Dateien, aber man kann auch jederzeit zu den aufgezeichneten, guten Zwischenständen zurückkehren.

Wobei ich eigentlich immer ein paar Dateien als ”Scratchpad” nebenher habe um Sachen auszuprobieren. Analogie zu der Textverarbeitung wären Notizzettel wo man mal schnell was skizziert und schaut ob das so geht oder nicht. Inklusive einer IPython-Shell für noch flüchtigere Sachen. Finde ich nicht benutzerunfreundlich. Das ist ja letztlich auch das wofür Spyder brauchbar wäre.

Was würdest Du denn benutzerfreundlicher finden?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Kannst ja mal deinem Betreuer dieses Video hier zeigen. www.youtube.com/watch?v=NSiPeoDpwuI

Ab Minute 2:14 wird berichtet, dass Jupyter Notebooks unter anderem dazu verwendet wurden,
Gravitationswellen mit den Daten des LIGO Laser-Interferometer Gravitationswellen-Observatorium
nachzuweisen.

Hier ein Blog dazu:
https://www.ibm.com/developerworks/comm ... es?lang=en

Wie so ein Jupyter Notebook dann aussieht, könnt ihr euch hier ansehen:
https://hub.mybinder.org/user/losc-tuto ... ndex.ipynb
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Antworten