V nadaljevanju je opisano delovanje nizov, ki vsebujejo nove vrstice, v programu Python.
- Ustvari niz, ki vsebuje nove vrstice, in izpiše izpis (prikaz)
- znak nove vrstice (CR in LF ali oba, odvisno od sistema).
\n
(LF),\r\n
(CR+LF) - trojni citat
'''
,"""
- Če želite narediti alinejo
- znak nove vrstice (CR in LF ali oba, odvisno od sistema).
- združite seznam nizov z novimi vrsticami
- Razdelite niz na nove vrstice in seznam:
splitlines()
- Odstranite in zamenjajte kode linijskega napajanja
- Izpis izpisa brez zadnje nove vrstice
Ustvari niz, ki vsebuje nove vrstice, natisni izhod
znak nove vrstice (CR in LF ali oba, odvisno od sistema). \n(LF), \r\n(CR+LF)
Če v niz vstavite kodo podajanja vrstice, bo nastala nova vrstica.
s = 'Line1\nLine2\nLine3'
print(s)
# Line1
# Line2
# Line3
s = 'Line1\r\nLine2\r\nLine3'
print(s)
# Line1
# Line2
# Line3
Kode za podajanje vrstic se lahko uporabljajo na naslednje načine. Nekateri urejevalniki omogočajo izbiro kode za prelom vrstice.
Macを含むUnix系 | \n (LF) |
Windows系 | \r\n (CR+LF) |
trojni citat ''',"""
Če je niz zaprt s trojnimi narekovaji, bo to takšen niz, kot je, vključno z novimi vrsticami.
s = '''Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Če želite narediti alinejo
Trojni narekovaji so tudi presledki v nizu, zato bodo vstavljeni nepotrebni presledki, če skušate v kodi pisati urejeno in z alinejo, kot je prikazano spodaj.
s = '''
Line1
Line2
Line3
'''
print(s)
#
# Line1
# Line2
# Line3
#
Z uporabo povratne poševnice, ki ne upošteva novih vrstic v kodi in jo naredi za nadaljevalno vrstico, jo lahko zapišemo takole
Vsako vrstico ogradite z '' ali “” in na koncu stavka dodajte znak nove vrstice ←n.
s = 'Line1\n'\
'Line2\n'\
'Line3'
print(s)
# Line1
# Line2
# Line3
Pri tem je sintaksa taka, da se zaporedni literali niza združijo. Za podrobnosti glejte naslednji članek.
Če želite v niz dodati alinejo, v vsako vrstico niza dodajte presledek.
s = 'Line1\n'\
' Line2\n'\
' Line3'
print(s)
# Line1
# Line2
# Line3
Poleg tega lahko v oklepajih prosto prelamljamo vrstice, zato lahko naslednje besedilo zapišemo z oklepaji namesto s povratnimi šumniki.
s = ('Line1\n'
'Line2\n'
'Line3')
print(s)
# Line1
# Line2
# Line3
s = ('Line1\n'
' Line2\n'
' Line3')
print(s)
# Line1
# Line2
# Line3
Če želite le poravnati začetek vrstice, v prvo vrstico trojnih narekovajev dodajte povratno poševnico.
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
združite seznam nizov z novimi vrsticami
Z metodo join() lahko združite seznam nizov v en sam niz.
Ko se funkcija join() kliče z znakom nove vrstice, se vsak element niza poveže z novo vrstico.
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'
Kot v zgornjem primeru lahko vgrajeno funkcijo repr() uporabite za preverjanje nizov, ki vsebujejo kode novih vrstic, kot so.
Razdelite niz na nove vrstice in seznam: splitlines()
Z metodo splitlines() lahko razdelimo niz na seznam novih vrstic.
funkcija splitlines() razdeli katero koli od naslednjih kod za prekinitev vrstice. Razdeli tudi navpične zavihke in prelome strani.
\n
\r\n
\v
\f
s = 'Line1\nLine2\r\nLine3'
print(s.splitlines())
# ['Line1', 'Line2', 'Line3']
Odstranite in zamenjajte kode linijskega napajanja
S kombinacijo funkcij splitlines() in join() lahko iz niza, ki vsebuje nove vrstice, odstranite kode novih vrstic ali jih nadomestite z drugimi nizi.
s = 'Line1\nLine2\r\nLine3'
print(''.join(s.splitlines()))
# Line1Line2Line3
print(' '.join(s.splitlines()))
# Line1 Line2 Line3
print(','.join(s.splitlines()))
# Line1,Line2,Line3
Možno je tudi paketno spreminjanje kod vrstic. Tudi če so kode za prelom vrstic mešane ali neznane, jih je mogoče razdeliti z uporabo funkcije splitlines() in nato združiti z želeno kodo za prelom vrstic.
s_n = '\n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1\nLine2\nLine3'
Kot je omenjeno zgoraj, bo funkcija splitlines() razdelila vsako kodo nove vrstice, zato pri metodi, ki združuje funkcije splitlines() in join(), ni treba posebej skrbeti za kode nove vrstice.
Če je koda nove vrstice jasna, jo lahko nadomestite tudi z metodo replace(), ki nadomesti niz.
s = 'Line1\nLine2\nLine3'
print(s.replace('\n', ''))
# Line1Line2Line3
print(s.replace('\n', ','))
# Line1,Line2,Line3
Vendar upoštevajte, da ne bo delovala, če bo vsebovala drugačne kode vrstic od pričakovanih.
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'
S ponavljanjem funkcije replace() je mogoče zamenjati več kod novih vrstic, vendar to ne bo delovalo, če je vrstni red napačen, saj “\r\n” vsebuje “\n”. Zgoraj opisana metoda, ki združuje splitlines() in join(), je varnejša, saj ni treba skrbeti za kode za podajanje vrstic.
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
Uporabite metodo rstrip(), da odstranite kode vrstic na koncu stavka. rstrip() je metoda za odstranjevanje belih znakov (vključno z vrsticami) na desnem koncu niza.
s = 'aaa\n'
print(s + 'bbb')
# aaa
# bbb
print(s.rstrip() + 'bbb')
# aaabbb
Izpis izpisa brez zadnje nove vrstice
Funkcija print() privzeto doda zadnjo novo vrstico. Če je funkcija print() izvedena zaporedoma, bo zato vsak izhodni rezultat prikazan v novi vrstici.
print('a')
print('b')
print('c')
# a
# b
# c
To je zato, ker je privzeta vrednost argumenta end funkcije print(), ki določa niz, ki se doda na koncu, simbol nove vrstice.
Če ne želite nove vrstice na koncu, nastavite argument end na prazen niz in izpis bo prikazan brez nove vrstice na koncu.
print('a', end='')
print('b', end='')
print('c', end='')
# abc
Argument end je lahko poljuben niz.
print('a', end='-')
print('b', end='-')
print('c')
# a-b-c
Če pa želite za izpis združiti nize, je lažje združiti izvirne nize, kot jih navesti v končnem argumentu funkcije print(). Oglejte si naslednji članek.