Hi Leute,
mein name ist Karim und ich bin neu in der Python-Szene^^
Ich möchte gerne eine for-Schleife erzeugen. Für euch wahrscheinlich das einfachste auf der Welt^^ Für mich jedoch Verzweiflung Pur!
Es geht um einem Punkt im 3D-Koordinatensystem mit den Komponenten x,y,z
Diese Komponenten will ich (x/y um je 3, z um je 2) Werte nach links und rechts in 1er Schritten ausgeben lassen.
zB
x= 10
y=20
z=30
dann soll er mit x bei 7 anfangen und bis 13 gehen
und für y und z das selbe spielchen.
zudem soll er aber auch die, ich nenn sie jetzt mal, zusätzlichen stationen aufrufen. also das x,y, und z gleichzeitig verändert sind! ich hoffe ich konnte das irgendwie erklären.
also so:
1. x=10 y=20 z=30
2. x=7 y=20 z=30
3. x=8 y=20 z=30
...
...bis
...
q. x=13 y=20 z=30
dann soll sich y auf den nächsten wert bewegen
q. x=10 y=17 z=30
q. x=7 y=17 z=30
q. x=8 y=17 z=30
usw.
also sprich, jede kombination aus x,y und z will ich ausgeben wobei sich, wie oben beschrieben x und y um 3 und z sich um 2 verändert.
Ich hoffe ihr könnt mir schnellstmöglich helfen.
Mit freundlichen Grüßen
Kareem
for-Schleife erstellen
Hallo Karim, willkommen im Forum!
Welche Vorkenntnisse an Programmierung - in Python und sonst - bringst du denn mit?
Könntest du dein Problem in irgendeiner anderen Sprache lösen? Wie sähe es da aus? Schreib doch mal etwas Pseudocode oder Code in einer dir vertrauten Sprache. Das Übertragen nach Python wird dann nicht so schwer sein.
Welche Vorkenntnisse an Programmierung - in Python und sonst - bringst du denn mit?
Könntest du dein Problem in irgendeiner anderen Sprache lösen? Wie sähe es da aus? Schreib doch mal etwas Pseudocode oder Code in einer dir vertrauten Sprache. Das Übertragen nach Python wird dann nicht so schwer sein.
ja also das sind meine ersten programmierungen in python.
vorher habe ich mal java gelernt.
nunja bisher versuche ich das immer so zu lösen:
und da musste ich die zahlen immer so eingeben, und es konnte mir auch nicht die zusätzlichen Sachen ausgeben.
die werte will ich nachher in ein xml schreiben. da sind meine befehle nach caseString=...
gibt es auch eine möglichkeit, werte aus einem xml rauszuholen? Sodass ich die manuelle Eingabe umgehen kann?
Und zur Frage mit der anderen Sprache und dem übertragen wüsste ich leider auch nicht, wie ich das in Java schreiben würde! Ich bin totaler anfänger und habe bisher nur ganz einfache sachen gemacht
vorher habe ich mal java gelernt.
nunja bisher versuche ich das immer so zu lösen:
Code: Alles auswählen
caseId= 0
a = -3
b = 3
x = 130.499998435961
y = 123.500000337196
z = 6.50000025180586
x= x+a
while a <= b:
caseId = caseId + 1
idString = "%04d" % (caseId,)
posString = str(xt3) + " " + str(yt3) + " " + str(zt3)
caseString = ...
% (idString, idString, posString)
myfile.write(caseString)
x=x+1
a = a+1
die werte will ich nachher in ein xml schreiben. da sind meine befehle nach caseString=...
gibt es auch eine möglichkeit, werte aus einem xml rauszuholen? Sodass ich die manuelle Eingabe umgehen kann?
Und zur Frage mit der anderen Sprache und dem übertragen wüsste ich leider auch nicht, wie ich das in Java schreiben würde! Ich bin totaler anfänger und habe bisher nur ganz einfache sachen gemacht
Das macht weiter ja nichts - so ging es jedem irgendwann mal.Kareem85 hat geschrieben:Ich bin totaler anfänger und habe bisher nur ganz einfache sachen gemacht
Dann wäre es m.E. aber sinnvoll, wenn du dir zunächst einmal Zeit nimmst, ein anständiges Tutorial mit den darin befindlichen Beispielen in Ruhe durchzuarbeiten. Das offizielle Tutorial ist da sehr zu empfehlen.
Falls du im Englischen fit bist, am besten im Original:
http://docs.python.org/tut/tut.html
Ansonsten geht auch eine etwas ältere, aber dafür deutsche Fassung:
http://starship.python.net/crew/gherman ... nline/tut/
Überleg doch mal:
Vermutlich könnte manch einer hier dir den fertigen Code posten, macht wahrscheinlich aber keiner. DU musst vorne anfangen: Lesen, lesen, lesen, experimentieren, experimentieren, experimentieren, dadurch dann viele Aha-Erlebnisse haben und schließlich kannst du dein Programm dann selbst schreiben. Aber SCHNELL und EINFACH wird das nicht gehen.
zu XML:
Es soll schnell gehen und einfach sein. Du verstehst aber nach eigener Aussage wenig vom Programmieren. Wie soll das gehen?Kareem85 hat geschrieben:ich weiss ja nichtmal wie die Syntax, geschweige denn die Umsetzung dazu aussehen müsste Sad
hat mir denn keiner eine schnelle und einfache lösung die auch ich verstehe?
Vermutlich könnte manch einer hier dir den fertigen Code posten, macht wahrscheinlich aber keiner. DU musst vorne anfangen: Lesen, lesen, lesen, experimentieren, experimentieren, experimentieren, dadurch dann viele Aha-Erlebnisse haben und schließlich kannst du dein Programm dann selbst schreiben. Aber SCHNELL und EINFACH wird das nicht gehen.
zu XML:
ich erwarte ja nicht, dass mir einer den fertigen code zusenden soll aber einen kleinen ruck in die richtige richtung wäre jetzt grade eine erlösung aus meinen qualen
zudem fehlt mir diese zeit! ich kann nicht 2 wochen lesen wenn ich in einer kürzeren zeit das erledigt haben soll
zudem fehlt mir diese zeit! ich kann nicht 2 wochen lesen wenn ich in einer kürzeren zeit das erledigt haben soll
mal vielleicht so als Denkanstoss fuer ne ganz einfache Variante. Schau Dir einfach mal folgende Syntax an:
aus der Grundidee solltest Du doch zumindest was basteln koennen, indem man das jetzt halt mit mehreren Schleifen verschachtelt.
Code: Alles auswählen
xpos = 10
for x in range(xpos - 3, xpos + 3 + 1, 3):
print x,
na als Output kann da nicht nur xpos rauskommen sondern eben die drei Werte 7, 10, 13
Das sollte Dir einfach zeigen wie so ne normale Schleife aussehen kann. Dass das jetzt nur der x-Wert war ist klar und war beabsichtigt, denn die anderen sollst Du ja da selbst einbauen.
Eines noch: Du willst ja nicht nur die drei Werte haben sondern alle Werte dazwischen auch. Also musst Du in der Range-Klammer den letzten Wert, der die Schrittweite angibt, nicht 3 sondern 1 nehmen und schon hast Du alle gewuenschten x-Werte.
Das sollte Dir einfach zeigen wie so ne normale Schleife aussehen kann. Dass das jetzt nur der x-Wert war ist klar und war beabsichtigt, denn die anderen sollst Du ja da selbst einbauen.
Eines noch: Du willst ja nicht nur die drei Werte haben sondern alle Werte dazwischen auch. Also musst Du in der Range-Klammer den letzten Wert, der die Schrittweite angibt, nicht 3 sondern 1 nehmen und schon hast Du alle gewuenschten x-Werte.
wo gibt wer was aus und was ist daran dann falsch? Du drueckst Dich leider sehr unklar aus. Zeig doch mal was Du genau hast und machst und was dabei rauskommt. Bei dem was ich Dir da geschrieben habe kommt ja nicht nur ein Wert raus sondern mehrere, naemlich alle von Dir gewuenschten X-Werte.
also ich schreib mal den code rein weil ich grade garnichtmehr weiss was läuft!
Code: Alles auswählen
Zuletzt geändert von Kareem85 am Montag 7. Juli 2008, 16:46, insgesamt 1-mal geändert.
ok, mit Float-Werten als Koordinaten funktioniert das mit der range-Geschichte natuerlich nicht, da range nur Integers nimmt. Da musst Du dann vermutlich anders arbeiten. Mir ist aber noch nicht so ganz klar was Du eigentlich willst bzw. wo es klemmt. Das Codestueck das Du da zeigst ist ja nicht vollstaendig.
Fang doch erstmal an, nur die Schleifen zu bauen und mit print die Ergebniswerte auszugeben, ohne gleich was in ein File schreiben zu wollen. Erst wenn das klappt und die richtigen Werte rauskommen wuerde ich weitermachen mit ner anderen Ausgabe.
Fang doch erstmal an, nur die Schleifen zu bauen und mit print die Ergebniswerte auszugeben, ohne gleich was in ein File schreiben zu wollen. Erst wenn das klappt und die richtigen Werte rauskommen wuerde ich weitermachen mit ner anderen Ausgabe.
eine freundin hat mir geholfen!
das hat gefehlt...
trotzdem danke
Code: Alles auswählen
for i in range (- 2, 2,1):
zt1_neu= zt1+i
for j in range (-3, 3, 1):
yt1_neu=yt1+j
for k in range (-3, 3, 1):
xt1_neu= xt1+k
trotzdem danke