Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  [Python] Probleme mit For-Schleife

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   [Python] Probleme mit For-Schleife (2055 mal gelesen)
iggboert
Mitglied
Student


Sehen Sie sich das Profil von iggboert an!   Senden Sie eine Private Message an iggboert  Schreiben Sie einen Gästebucheintrag für iggboert

Beiträge: 21
Registriert: 17.03.2009

Abaqus 6.8.1

erstellt am: 04. Mai. 2009 11:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Allerseits, ich habe unten stehenden Code geschrieben. Eigentlich sollte er alle vorhandenen Jobs (hier 3) der Reihe nach abarbeiten, allerdings berechnet er nur die ersten Jobs und hört dann auf ohne den letzten Job zu berechnen, was ist an dem Code falsch?

Danke shcon mal im Vorraus

Code:
from abaqus import *
from abaqusConstants import *
from odbAccess import *
from math import *
from string import *
import __main__

def Aussenradius():
import sys
import visualization
import displayGroupOdbToolset as dgo
import sys
import Numeric
import xyPlot
import section
import regionToolset
import displayGroupMdbToolset as dgm
import part
import material
import assembly
import step
import interaction
import load
import mesh
import job
import sketch
import xyPlot
import connectorBehavior
for jobName in mdb.jobs.keys()[-3:-1]:
job = mdb.jobs[jobName]
job.submit()
job.waitForCompletion()
        .
        .
        .


[Diese Nachricht wurde von iggboert am 04. Mai. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nicksen
Mitglied
wissenschaftlicher Mitarbeiter


Sehen Sie sich das Profil von Nicksen an!   Senden Sie eine Private Message an Nicksen  Schreiben Sie einen Gästebucheintrag für Nicksen

Beiträge: 239
Registriert: 04.05.2007

erstellt am: 04. Mai. 2009 14:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iggboert 10 Unities + Antwort hilfreich

python arbeitet mit speziellen Indexgrenzen

Beispiel:
For i in range(0,3):
  ....coding


Diese Schleife laeuft von i=0 bis i=2!!! Die obere Grenze wird demnach NIE ERREICHT!
Das wird wohl das Problem sein. Probier es mal aus.

bestes Gelingen

------------------
==========
==  Dingsen  ==
==========

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iggboert
Mitglied
Student


Sehen Sie sich das Profil von iggboert an!   Senden Sie eine Private Message an iggboert  Schreiben Sie einen Gästebucheintrag für iggboert

Beiträge: 21
Registriert: 17.03.2009

Abaqus 6.8.1

erstellt am: 05. Mai. 2009 10:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

hallo Nicksen,

eigentlich wollte ich mit Absicht die For-Schleife von hinten aufziehen.
Also mit:

Code:
for jobName in mdb.jobs.keys()[-3:-1]:

allerdings hab ich es halt nie geschafft mit -1 den letzten Job einzufangen. Warum auch immer...
mit dem Befehl: mdb.jobs.keys()[-1] zeigt er mit im Interpreter ja auch den letzten Job an... Aber leider wird da, wie du sagst das Ende (hier die -1) nicht erreicht.

Nun fang ich einfach (wie du sagst) von vorne an zu zählen.
Also mit:

Code:
for jobName in mdb.jobs.keys()[0:4]:

Danke für die Hilfe!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

loretta
Mitglied



Sehen Sie sich das Profil von loretta an!   Senden Sie eine Private Message an loretta  Schreiben Sie einen Gästebucheintrag für loretta

Beiträge: 17
Registriert: 31.10.2008

erstellt am: 05. Mai. 2009 15:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iggboert 10 Unities + Antwort hilfreich

Hallo Iggboert,

mal so völlig ungetestet und ausm Kopp: Python bietet die Möglichkeit mittels des Befehls reverse() Listen umzudrehen.

s = [1,2,5,7]
s.reverse()
print s

{ergibt [7,5,3,1]}

In deinem Fall also:

jobList = mdb.jobs.keys()
jobList.reverse() # Liste umdrehen
for item in jobList:

{hier den Schleifeninhalt}

Versuchs doch mal! Mir ist aber zugegebenermaßen auch schleierhaft, warum deine Variante nicht funktioniert.
Grüße
Patrick

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

carsten1983
Mitglied
Doktorand


Sehen Sie sich das Profil von carsten1983 an!   Senden Sie eine Private Message an carsten1983  Schreiben Sie einen Gästebucheintrag für carsten1983

Beiträge: 125
Registriert: 11.10.2007

erstellt am: 06. Mai. 2009 09:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iggboert 10 Unities + Antwort hilfreich

Warum willst du eigentlich unbedingt von Hand die 3 Jobs zuweisen?
Code:
for jobName in mdb.jobs.keys()
iteriert über alle einträge in der Liste. Alternativ um das mit den Indices nochmal zu zeigen, könntest du auch auch:
Code:
for jobName in mdb.jobs.keys()[:]
verwenden. Bei diesem kompletten Slice sollten alle Listeneinträge verwendet werden.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iggboert
Mitglied
Student


Sehen Sie sich das Profil von iggboert an!   Senden Sie eine Private Message an iggboert  Schreiben Sie einen Gästebucheintrag für iggboert

Beiträge: 21
Registriert: 17.03.2009

Abaqus 6.8.1

erstellt am: 15. Mai. 2009 16:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

hi Carsten,

komme jetzt erst dazu zu antworten. Warum ich das mache? Hmm, ganz einfach. Ich kannte die von die angegebene Lösung noch gar nicht. Habs jetzt ausprobiert und es klappt prima!

Danke  

Man lernt halt nie aus!

Grüssla

[Diese Nachricht wurde von iggboert am 24. Sep. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2019 CAD.de | Impressum | Datenschutz