Nasledujúci text opisuje prácu s reťazcami obsahujúcimi nové riadky v jazyku Python.
- Vytvorenie reťazca obsahujúceho nové riadky, tlač výstupu (zobrazenie)
- znak nového riadku (v závislosti od systému buď CR, alebo LF)
\n
(LF),\r\n
(CR+LF) - trojitá citácia
'''
,"""
- Ak chcete odsadiť
- znak nového riadku (v závislosti od systému buď CR, alebo LF)
- spojiť zoznam reťazcov s novými riadkami
- Rozdelenie reťazca na nové riadky a zoznam:
splitlines()
- Odstránenie a nahradenie kódov podávania riadkov
- Tlač výstupu bez koncového nového riadku
Vytvorenie reťazca obsahujúceho nové riadky, tlač výstupu
znak nového riadku (v závislosti od systému buď CR, alebo LF) \n(LF), \r\n(CR+LF)
Vložením kódu podávania riadkov do reťazca sa vytvorí nový riadok.
s = 'Line1\nLine2\nLine3'
print(s)
# Line1
# Line2
# Line3
s = 'Line1\r\nLine2\r\nLine3'
print(s)
# Line1
# Line2
# Line3
Kódy podávania riadkov možno použiť nasledujúcimi spôsobmi. Niektoré editory umožňujú vybrať kód zalomenia riadku.
Macを含むUnix系 | \n (LF) |
Windows系 | \r\n (CR+LF) |
trojitá citácia ''',"""
Ak sa na uzavretie reťazca použijú trojité úvodzovky, bude to reťazec ako taký, vrátane nových riadkov.
s = '''Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Ak chcete odsadiť
Trojité úvodzovky sú tiež medzery v reťazci, takže ak sa budete snažiť písať úhľadne v kóde a odsadíte ho tak, ako je uvedené nižšie, vložia sa zbytočné medzery.
s = '''
Line1
Line2
Line3
'''
print(s)
#
# Line1
# Line2
# Line3
#
Pomocou spätného lomítka, ktoré ignoruje nové riadky v kóde a robí z neho pokračovací riadok, ho možno zapísať takto
Každý riadok uzavrite znakom „“ alebo „“ a na koniec vety pridajte znak nového riadku ←n.
s = 'Line1\n'\
'Line2\n'\
'Line3'
print(s)
# Line1
# Line2
# Line3
Syntax spočíva v tom, že sa po sebe idúce reťazcové literály spájajú. Podrobnosti nájdete v nasledujúcom článku.
- Súvisiace články:Spájanie a spájanie reťazcov v jazyku Python (operátor +, join atď.)
Ak chcete pridať odsadenie v reťazci, stačí pridať medzeru do reťazca v každom riadku.
s = 'Line1\n'\
' Line2\n'\
' Line3'
print(s)
# Line1
# Line2
# Line3
Okrem toho, keďže v zátvorkách možno ľubovoľne vytvárať zlomy riadkov, nasledujúce príkazy možno zapísať pomocou zátvoriek namiesto spätných lomiek.
s = ('Line1\n'
'Line2\n'
'Line3')
print(s)
# Line1
# Line2
# Line3
s = ('Line1\n'
' Line2\n'
' Line3')
print(s)
# Line1
# Line2
# Line3
Ak chcete len zarovnať začiatok riadku, stačí pridať spätné lomítko na prvý riadok trojitých úvodzoviek.
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
spojiť zoznam reťazcov s novými riadkami
Metódu join() možno použiť na spojenie zoznamu reťazcov do jedného reťazca.
- Súvisiace články:Spájanie a spájanie reťazcov v jazyku Python (operátor +, join atď.)
Keď sa funkcia join() zavolá zo znaku nového riadku, každý prvok reťazca sa spojí s novým riadkom.
l = ['Line1', 'Line2', 'Line3']
s_n = '\n'.join(l)
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1\nLine2\nLine3'
s_rn = '\r\n'.join(l)
print(s_rn)
# Line1
# Line2
# Line3
print(repr(s_rn))
# 'Line1\r\nLine2\r\nLine3'
Podobne ako vo vyššie uvedenom príklade, vstavaná funkcia repr() môže byť použitá na kontrolu reťazcov, ktoré obsahujú kódy nového riadku tak, ako sú.
Rozdelenie reťazca na nové riadky a zoznam: splitlines()
Na rozdelenie reťazca na zoznam nových riadkov možno použiť metódu splitlines().
splitlines() rozdelí ktorýkoľvek z nasledujúcich kódov zalomenia riadku. Zvislé tabulátory a zalomenie strany sa tiež rozdelia.
\n
\r\n
\v
\f
s = 'Line1\nLine2\r\nLine3'
print(s.splitlines())
# ['Line1', 'Line2', 'Line3']
Odstránenie a nahradenie kódov podávania riadkov
Kombináciou funkcií splitlines() a join() je možné odstrániť (odstrániť) kódy nových riadkov z reťazca obsahujúceho nové riadky alebo ich nahradiť inými reťazcami.
s = 'Line1\nLine2\r\nLine3'
print(''.join(s.splitlines()))
# Line1Line2Line3
print(' '.join(s.splitlines()))
# Line1 Line2 Line3
print(','.join(s.splitlines()))
# Line1,Line2,Line3
Dávková zmena kódov podávania riadkov je tiež možná. Aj keď sú kódy zalomenia riadkov zmiešané alebo neznáme, možno ich rozdeliť pomocou funkcie splitlines() a potom spojiť s požadovaným kódom zalomenia riadkov.
s_n = '\n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1\nLine2\nLine3'
Ako bolo uvedené vyššie, metóda splitlines() rozdelí akýkoľvek kód nového riadku, takže v prípade metódy kombinujúcej splitlines() a join() nie je potrebné sa kódmi nového riadku zvlášť zaoberať.
Ak je kód nového riadku jasný, možno ho nahradiť aj metódou replace(), ktorá nahradí reťazec.
s = 'Line1\nLine2\nLine3'
print(s.replace('\n', ''))
# Line1Line2Line3
print(s.replace('\n', ','))
# Line1,Line2,Line3
Upozorňujeme však, že nebude fungovať, ak bude obsahovať iné kódy podávania riadkov, ako sa očakáva.
s = 'Line1\nLine2\r\nLine3'
s_error = s.replace('\n', ',')
print(s_error)
# ,Line3Line2
print(repr(s_error))
# 'Line1,Line2\r,Line3'
s_error = s.replace('\r\n', ',')
print(s_error)
# Line1
# Line2,Line3
print(repr(s_error))
# 'Line1\nLine2,Line3'
Je možné nahradiť viacero kódov nového riadku opakovaním funkcie replace(), ale nebude to fungovať, ak je poradie nesprávne, pretože „\r\n“ obsahuje „\n“. Vyššie opísaná metóda kombinujúca splitlines() a join() je bezpečnejšia, pretože sa netreba starať o kódy riadkovania.
s = 'Line1\nLine2\r\nLine3'
print(s.replace('\r\n', ',').replace('\n', ','))
# Line1,Line2,Line3
s_error = s.replace('\n', ',').replace('\r\n', ',')
print(s_error)
# ,Line3Line2
print(repr(s_error))
# 'Line1,Line2\r,Line3'
print(','.join(s.splitlines()))
# Line1,Line2,Line3
Metóda rstrip() slúži na odstránenie kódov riadkového posuvu na konci vety. rstrip() je metóda na odstránenie bielych znakov (vrátane riadkového posuvu) na pravom konci reťazca.
s = 'aaa\n'
print(s + 'bbb')
# aaa
# bbb
print(s.rstrip() + 'bbb')
# aaabbb
Tlač výstupu bez koncového nového riadku
Funkcia print() predvolene pridáva koncové nové riadky. Preto ak sa funkcia print() vykoná postupne, každý výstupný výsledok sa zobrazí na novom riadku.
print('a')
print('b')
print('c')
# a
# b
# c
Je to preto, že predvolenou hodnotou argumentu end funkcie print(), ktorý určuje reťazec, ktorý sa má pridať na koniec, je symbol nového riadku.
Ak nechcete mať na konci nový riadok, stačí nastaviť argument end na prázdny reťazec a výstup sa vypíše bez nového riadku na konci.
print('a', end='')
print('b', end='')
print('c', end='')
# abc
Argument end môže byť ľubovoľný reťazec.
print('a', end='-')
print('b', end='-')
print('c')
# a-b-c
Ak však chcete spojiť reťazce na výstup, je jednoduchšie spojiť pôvodné reťazce, ako ich uvádzať v koncovom argumente funkcie print(). Pozri nasledujúci článok.
- Súvisiace články:Spájanie a spájanie reťazcov v jazyku Python (operátor +, join atď.)