Es geht nur um den Teil ab dem comment "X-Koordinate". Der Code funktioniert, wenn ich nur den Teil mit "X-Koordinate" einkommentiere. Wenn ich den Teil mit "Y-Koordinate" und "Z-Koordinate" einkommentiere funktioniert er nicht mehr. Ich weiß nicht warum :K
Ich habe das Gefühl das hat was damit zu tun, dass Variablen unbemerkt überschrieben werden, was für Leute die neu in Python sind, wie ich, immer erstaunlich ist. So wie hier ganz unten: http://www.python-course.eu/sequential_data_types.php
Das Ziel des Codes ist, dass x_min, x_max etc. ausgerechnet werden. Ich wette der Rest verwirrt euch jetzt Der Rest ist aber nur das Auslesen von der asd.fem und das funktioniert auch.
Falls ich noch mehr erklären soll bitte sagen!
Code: Alles auswählen
n_max=[0.0,0.0]
n_min=[0.0,0.0]
x_max=[0.0,0.0]
x_min=[0.0,0.0]
y_max=[0.0,0.0]
y_min=[0.0,0.0]
z_max=[0.0,0.0]
z_min=[0.0,0.0]
p0=[]
text = open("asd.fem","r")
lines = (line.rstrip("\n") for line in text)
lines = (line for line in lines if line)
for line in lines:
v=line.split()
if v[0]=="GRID":
#NUM_ELEM_X & NUM_ELEM_Y & NUM_ELEM_Z
# X Koordinate
if line[29:30]=="-":
x = float(line[24:29] + "e" + line[29:32])
else:
x = float(line[24:32])
find_max_min(x,x_max,x_min)
x_max = n_max
x_min = n_min
# Y Koordinate
if line[37:38]=="-":
y = float(line[32:37] + "e" + line[37:40])
else:
y = float(line[32:40])
find_max_min(y,y_max,y_min)
y_max = n_max
y_min = n_min
# Z Koordinate
if line[45:46]=="-":
z = float(line[40:45] + "e" + line[45:48])
else:
z = float(line[40:48])
find_max_min(z,z_max,z_min)
z_max = n_max
z_min = n_min
def find_max_min(n,n_max,n_min):
if n > n_max[0]:
n_max[1] = n_max[0]
n_max[0] = n
elif n > n_max[1] and n < n_max[0]:
n_max[1] = n
elif n < n_min[0]:
n_min[1] = n_min[0]
n_min[0] = n
elif n < n_min[1] and n > n_min[0]:
n_min[1] = n