SyntaxError: invalid syntax nach For-Schleife

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
schneitzmaster
User
Beiträge: 94
Registriert: Freitag 26. Oktober 2012, 15:35
Wohnort: Hamburg

Hallo Leute,
ich bin jetzt schon seit mehreren Tagen am rumgrübeln und finde keine Antwort auf mein Problem.
Hier mein Minimalbeispiel

Code: Alles auswählen

import math  
anz     = 1000    
dt      = 1e-05
eps_ver = [0]*(anz+1) 
k=0
epsH_dot = 10  
for k in range(0,(anz+1)):
     eps_ver[k] = ( k*dt , epsH_dot* math.exp( epsH_dot*k*dt ) )
     
eps_ver[0] = (0.0,0.0) 
Beim kopieren in die Kommandozeile und Ausführung der Schleife mit Zuweisung des nullten Elementes erhalte ich die Fehlermeldung SyntaxError: invalid syntax.
Wenn ich aber nur die Schleife ausführe und danach die Zuweisung für

Code: Alles auswählen

eps_ver[0] = (0.0,0.0) 
ausführe klappt alles.
Warum?
Kann mir jemand helfen?
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

Das liegt daran, dass in der Python-"REPL" nach Einrückung eine Leerzeile erwartet wird, und du diese nicht mitkopierst.
schneitzmaster
User
Beiträge: 94
Registriert: Freitag 26. Oktober 2012, 15:35
Wohnort: Hamburg

Hi nomnom,
vielen Dank für den Hinweis. Da muss man erst mal drauf kommen.
Siehst du eine Möglichkeit, dass es über kopieren und einfügen funktioniert.
Gibt es ein Kommando in Python, der eine Leerzeile nach dem Einrücken einfügt.
Hintergrund ist folgender. Ich erzeuge parametrisierte Modelle in ABAQUS und benutzte dazu Python. Die einzelnen Schritte zur Modell Erstellung werden dabei immer per copy&past in die Kommandozeile realisiert.
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

Du kannst wahrscheinlich einfach ein Leerzeichen in die Leerzeile setzen.

Aber warum Copy & Paste? Eine Datei auszuführen sollte doch einfacher sein.
schneitzmaster
User
Beiträge: 94
Registriert: Freitag 26. Oktober 2012, 15:35
Wohnort: Hamburg

Hi ich habe deinen Vorschlag gerade ausprobiert. Leider funktioniert das nicht. Gibt es vielleicht noch eine andere Variante.

Der Grund meiner Copy&Paste - Verwendung ist, dass die ABAQUS-Modelle Stück für Stück aufgebaut werden. So kommt erst die Geometrie dann die Vernetzung usw.
Da nicht von Anfang an klar ist ob die Befehle so richtig sind, oder manchmal nicht das ganze Modell geändert werden soll sondern in kleiner Teil von Hand (per GUI) modelliert wird, verwende ich Python über die Kommandozeile.
Doch immer nach dieser Schleife springt er raus.
Also wenn du noch eine Idee hast wäre das echt toll.
Danke
schneitzmaster
User
Beiträge: 94
Registriert: Freitag 26. Oktober 2012, 15:35
Wohnort: Hamburg

Hi ich habe jetzt die Lösung.
Man muss für den Interpreter eine Leerzeile (ohne Lehrzeichen o.ä.) nach der Schleife einfügen. Dann erkennt er das diese beendet ist.
Vielen Dank noch mal für deine Hilfe.
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Also mal ehrlich. Speicher das ganze in einer Datei und führ sie dann einfach mit dem Interpreter aus.
Du stellst dir selbst ein Bein, und das kann weder sinnvoll noch lehrreich sein.
Irgendwoher musst du es ja eh kopieren. Und wenn das dann auch noch eine Textdatei ist, dann ist das ja doppelt von hinten, durch die Beine und ins Auge.
Antworten