Seite 1 von 1

Strings und \n

Verfasst: Freitag 27. Juli 2007, 11:01
von KoenigGunther
Hi!
Ich bekomme es gerade nicht auf die Reihe einen String einzugeben und genau so wieder auszugeben...

Code: Alles auswählen

>>> s = '''
... lol
... rofl
... "\n"
... lmao
... '''
>>> print(s)

lol
rofl
"
"
lmao

>>> print repr(s)
'\nlol\nrofl\n"\n"\nlmao\n'
>>> print str(s)

lol
rofl
"
"
lmao

>>> 
Ich möchte dass mir der String wieder so mit den eingegebenen Absätzen ausgegeben wird, aber das "\n" als String interpretiert wird. Dabei möchte ich das aber nicht in \\n umschreiben müssen - das \n soll einfach so als String, nicht als Befehl interpretiert werden - gibts da ne Funktion/Möglichkeit?

Christian

Verfasst: Freitag 27. Juli 2007, 11:06
von Zap
Mehrzeilige Strings mit """ brauchen kein \n für einen Zeilenumbruch:
Das geht ganz einfach so...

Code: Alles auswählen

In [22]: t = """Das ist ein Text
   ....: der ueber mehrere
   ....: Zeilen geht.
   ....:    Mit Einrueckung!!
   ....: """

In [23]: print t
Das ist ein Text
der ueber mehrere
Zeilen geht.
   Mit Einrueckung!!


In [24]:
Edit: So sehen die Strings intern aus:

Code: Alles auswählen

In [26]: t
Out[26]: 'Das ist ein Text\nder ueber mehrere \nZeilen geht.\n   Mit Einrueckung!!\n'
In [27]: print t.__repr__()
'Das ist ein Text\nder ueber mehrere \nZeilen geht.\n   Mit Einrueckung!!\n'

Verfasst: Freitag 27. Juli 2007, 12:02
von Leonidas
Ist doch alles kein Problem, dazu gibt es in Python Raw-Strings mit dem ``r``-Literal, dass vor die Quotes gestellt wird:

Code: Alles auswählen

In [23]: s = r"""
   ....: lol
   ....: rofl
   ....: "\n"
   ....: lmao
   ....: """
In [24]: print s

lol
rofl
"\n"
lmao
Übrigens - ``print`` ist ein Statement und keine Funktion. Noch nicht.

Verfasst: Mittwoch 1. August 2007, 07:06
von KoenigGunther
Hoppla - ich hab wohl damals vergessen den Absenden-Button zu drücken :D
Vielen Dank! Das vorangestellte 'r' hatte ich total vergessen.

Themen als gelöst zu markieren muss ich/geht hier gar nicht, oder?

Verfasst: Mittwoch 1. August 2007, 07:32
von gerold
KoenigGunther hat geschrieben:Themen als gelöst zu markieren muss ich/geht hier gar nicht, oder?
Hallo KoenigGunther!

Da es sich hier im Board alles um Python handelt, wird so gut wie alles "gelöst". :D
Es rentiert sich also nicht, irgendwelche Themen als "gelöst" zu markieren, da sie sowiso fast alle "gelöst" werden.

Wenn es jemand machen möchte, dann kann er/sie ein Thema nach ein paar Tagen ohne Antwort als "ungelöst" markieren. ;-)

Wenn du das tun möchtest --> Du kannst deine eigenen Beiträge editieren. Wenn du den ersten Beitrag eines Themas editierst, dann kannst du auch dessen Titel ändern und z.B. den Text "[ungelöst]" rein schreiben.

mfg
Gerold
:-)

Verfasst: Donnerstag 2. August 2007, 00:23
von thelittlebug
ach, ich möchte an den thread erinnern den ich nach über 4 jahren aus der versenkung geholt habe (jaja, seite 89 war das) um ihn zu beantworten :D

nee, aber echt, bis dorthin ist mir fast keiner aufgefallen den es:
1. zu beantworten gelohnt hätte
2. ich beantworten hätte können

somit hat gerold wohl recht

lgherby

Verfasst: Donnerstag 2. August 2007, 09:22
von KoenigGunther
Geht klar, dann kann ich das auch nicht vergessen zu erledigen :)