Wie erstellt man einen zeilenumbruch in einer variable?

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
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

hi leudes, ich mal wieder...-.- es nervt mich immer, wenn ich ne frage zu sowas hab...
also. ich arbeite an einem script, dass mir für anim8or eine datei modifiziert. da habe ich mir überlegt, ich erstelle eine variable, schreibe den code darein und schreibe die variable dann in die datei.
ALLERDINGS muss ich der datei irgedwie sagen, dass sie an bestimmten stellen eine neue zeile anfagen soll. wie mache ich ds? google hat mir auch nicht geholfen, die forensuche auch nicht.
geht das mit /n oder is das (nur) c?
greetings
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Was du meinst ist \n.

Aber das klingt danach, dass du dir das Tutorial mal zu Gemüte führen solltest.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

da kriege ich folgenden fehler:
python unexpected character after line continuation character
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

ihr werdet mich wahrscheinlich auslachen, aber das ist mein code:

Code: Alles auswählen

import random
i = False
curtext = ""
x = 27
y = 0
while i != True:
    locx = random.randint(0, 1)
    locy = random.randint(0, 1)
    locz = random.randint(0, 1)
    str(locx)
    str(locy)
    str(locz)
    str(x)
    curtext = curtext, '  objectelement { "eobject', x, '" "drop"', '    loc { (',locx ," ",locy , " ",locz ,')}' , "  }"
    x = x + 1
    y = y + 1
    if y == 23:
        i = True
outfile = open("C:/water.an8", "w")
outfile.write(curtext)
outfile.close()
    
WARUM FUNZT DAS NICHT???
BlackJack

@Maximilianibus: Es wurde ja schon gesagt -- Du solltest das Tutorial mal durcharbeiten. Zeichenketten werden in Python nicht durch Kommas konkateniert. Hier wirde sich zum Beispiel Zeichenkettenformatierung mittels ``%``-Operator oder mit der `format()`-Methode anbieten.

Die ``str(irgendwas)``-Zeilen bewirken letztendlich nichts. Es werden zwar Zeichenketten erstellt, aber wenn man die nicht in einem Aufruf verwendet oder an einen Namen bindet, ist das recht witzlos.

`curtext` durch konkatenieren mit dem alten Wert plus einem neuen ist ineffizient. Idiomatische Lösung in Python ist das sammeln der Teilzeichenketten in einer Liste, die dann später mit der `join()`-Methode auf Zeichenketten zusammengefügt wird. Oder Du könntest die Liste auch mit der `writelines()`-Methode auf Dateiobjekten schreiben.

`i` ist üblicherweise in sehr vielen Programmiersprachen ein Name für ganzahlige Werte in Schleifen. Das sollte man nicht für etwas anderes verwenden wenn man den Leser nicht irritieren möchte. Wenn man die Anzahl der Schleifendurchläufe vor Eintritt in die Schleife kennt, sollte man eine ``for``-Schleife verwenden. Wobei das `y`, was auf den ersten Blick nach einem Kandidaten für die Laufvariable aussieht, ja anscheinend gar nicht weiter verwendet wird!? Da sollte man also eher das `x` für nehmen und `y` komplett weglassen.

Zum letzten Satz: Ist die Fehlermeldung nicht aussagekräftig genug? Ich hab's nicht laufenlassen, daher weiss ich jetzt nicht ganz sicher ob es bis zum `outfile.write()` kommt, aber das dürfte sich beschweren, dass `curtext` den falschen Typ hat. Was nach dem durcharbeiten des Tutorials in der Dokumentation auch klar sein sollte.
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

wo wie was tutorial? galileo-computing? "programmieren macht spass"? wiki-books?
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

alsooo.... ich habe mal in der offiziellen python doku geschaut, das hilft mir alles nichts. ich kriege immer noch fehler, und der thread hat mir nich wirklich geholfen...-.-
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

also. IRGENDWIE habe ich es jetzt hinbekommen, aber aus einem mir unbekannten grund schiebt er 10 klammerns vor die output datei...

Code: Alles auswählen

import random
y = False
curtext = ""
x = 27
while y != True:
    locx = random.uniform(0, 1)
    locy = random.uniform(0, 1)
    locz = random.uniform(0, 1)
    curtext = curtext, '  objectelement { "eobject', x, '" "drop"', '    loc { (',locx ," ",locy , " ",locz ,')}' 
    cur2 = str(curtext)
    end =  "  }"
    outtext = [cur2, end]
    x = x + 1
    if x == 50:
        break
outfile = open("C:/water.an8", "w")
outfile.writelines(outtext)
outfile.close()
    
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

mein letzter post: wie entferne ich die " ' "? zb tex1 = 'bla', dann steht in der datei acuh 'bla'. wie ändert man das? ach ja, ich benutze keine " " ", weil die in der datei vorkommen!
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Maximilianibus hat geschrieben:also. IRGENDWIE habe ich es jetzt hinbekommen, aber aus einem mir unbekannten grund schiebt er 10 klammerns vor die output datei...
Jetzt ist vielleicht doch ein guter Zeitpunkt um dich Auszulachen ;). Lese dir BlackJacks Antwort durch, dann weißt du auch was du falsch gemacht hast. Das es dir nicht hilft dir das Tutorial mal anzuschauen ist klar. Du musst es natürlich auch durcharbeiten und verstehen.

Grüße
Gerrit


PS: Mit Doppelposts hat hier eigentlich keiner ein Problem. Aber vier Posts hintereinander ist dann doch etwas übertrieben.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Wenn wir von Tutorial reden, meinen wir normalerweise das Tutorial der offiziellen Python-Dokumentation (von welchem es auch eine deutsche Uebersetzung gibt). Ist uebrigens der erste Hit bei Google mit "python tutorial".
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Maximilianibus hat geschrieben:mein letzter post: wie entferne ich die " ' "? zb tex1 = 'bla', dann steht in der datei acuh 'bla'. wie ändert man das? ach ja, ich benutze keine " " ", weil die in der datei vorkommen!
Wir würden dir gerne helfen. Dir fehlen allerdings offensichtlich entscheidende Grundlagen. Bitte arbeite das Tutorial durch (Rebecca hat einen Link dorthin aufgezeigt). Dann können wir Tipps geben die auch verstanden werden.
Antworten