Ya jêrîn xebata rêzikên ku di Python de xetên nû vedihewîne vedibêje.
- Rêzek ku xetên nû vedihewîne biafirîne, derana çapê (nîşandan)
- karaktera nû (li gorî pergalê CR û LF an jî her du jî)
\n
(LF),\r\n
(CR+LF) - quote sêqat
''
,"""
- Heke hûn dixwazin bihêlin
- karaktera nû (li gorî pergalê CR û LF an jî her du jî)
- Lîsteya rêzan bi xetên nû ve girêbide
- Xalê li xetên nû û navnîşê veqetînin:
splitlines()
- Kodên xwarina rêzê rakin û biguhezînin
- Hilbera çapkirinê bêyî xêza nû ya paşîn
Rêzek ku xetên nû vedihewîne biafirîne, hilberîna çap bike
karaktera nû (li gorî pergalê CR û LF an jî her du jî)\n(LF),\r\n(CR+LF)
Çêkirina kodek xwarinê ya rêzê di nav rêzek de dê bibe encamek nû.
s = 'Line1\nLine2\nLine3'
print(s)
# Line1
# Line2
# Line3
s = 'Line1\r\nLine2\r\nLine3'
print(s)
# Line1
# Line2
# Line3
Kodên xwarina rêzê dikarin bi awayên jêrîn werin bikar anîn. Hin edîtor dihêlin hûn kodek veqetandina rêzê hilbijêrin.
Macを含むUnix系 | \n (LF) |
Windows系 | \r\n (CR+LF) |
quote sêqat'',"""
Ger ji bo pêvekirina rêzikê sêqatên sêalî werin bikar anîn, ew ê wekî rêzek be, tevî xetên nû.
s = '''Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Heke hûn dixwazin bihêlin
Çîrokên sêalî jî di rêzekê de cîh in, ji ber vê yekê heke hûn hewl bidin ku wekî ku li jêr tê xuyang kirin bi rengek xweş bi kod û xêzkirinê binivîsin, dê cîhên nepêwist werin danîn.
s = '''
Line1
Line2
Line3
'''
print(s)
#
# Line1
# Line2
# Line3
#
Bi karanîna paşkêşkek ji bo guhnedana xêzên nû yên di kodê de û çêkirina wê xêzek domdar, dikare wekî jêrîn were nivîsandin.
Her rêzekê bi ” an “”yê ve girêbide û li dawiya hevokê karaktereke nû ←n lê zêde bike.
s = 'Line1\n'\
'Line2\n'\
'Line3'
print(s)
# Line1
# Line2
# Line3
Li vir, hevoksazî ev e ku rêzikên rêzikan ên li pey hev têne hev kirin. Ji bo hûragahiyan li gotara jêrîn binêre.
- Gotarên Têkildar:Di Python de girêdan û girêdana rêzan (+ operator, tevlêbûn, hwd.)
Heger tu dixwazî di rêzekê de derbekê lê zêde bikî, tenê di her rêzekê de valahiyek lê zêde bike.
s = 'Line1\n'\
' Line2\n'\
' Line3'
print(s)
# Line1
# Line2
# Line3
Wekî din, ji ber ku veqetandina rêzan bi serbestî di nav kevanan de têne çêkirin, jêrîn dikare li şûna paşkêşan bi karanîna parantezê were nivîsandin.
s = ('Line1\n'
'Line2\n'
'Line3')
print(s)
# Line1
# Line2
# Line3
s = ('Line1\n'
' Line2\n'
' Line3')
print(s)
# Line1
# Line2
# Line3
Heke hûn tenê dixwazin destpêka xêzekê li hev bikin, tenê paşkêşkek li rêza yekem a quotên sêalî zêde bikin.
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Lîsteya rêzan bi xetên nû ve girêbide
Rêbaza rêzê join() dikare were bikar anîn da ku navnîşek rêzikan bi yek rêzikan ve girêbide.
- Gotarên Têkildar:Di Python de girêdan û girêdana rêzan (+ operator, tevlêbûn, hwd.)
Dema ku join() ji karakterek xêzek nû tê gazî kirin, her hêmanek rêzikê bi xêzek nû ve tê girêdan.
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'
Mîna ku di mînaka li jor de, fonksiyona çêkirî ya repr() dikare were bikar anîn da ku rêzikên ku kodên xêza nû wekî wan dihewîne kontrol bikin.
Xalê li xetên nû û navnîşê veqetînin:splitlines()
Rêbaza string splitlines() dikare were bikar anîn da ku rêzek li navnîşek xetên nû veqetîne.
splitlines() dê yek ji kodên veqetandina rêzê yên jêrîn perçe bike. Tebên vertîkal û veqetandina rûpelan jî têne dabeş kirin.
\n
\r\n
\v
\f
s = 'Line1\nLine2\r\nLine3'
print(s.splitlines())
# ['Line1', 'Line2', 'Line3']
Kodên xwarina rêzê rakin û biguhezînin
Bi berhevkirina splitlines() û join(), mimkun e ku meriv kodên xetên nû ji rêzek ku xetên nû vedihewîne were rakirin (rakirin) an jî rêzikên din biguhezîne.
s = 'Line1\nLine2\r\nLine3'
print(''.join(s.splitlines()))
# Line1Line2Line3
print(' '.join(s.splitlines()))
# Line1 Line2 Line3
print(','.join(s.splitlines()))
# Line1,Line2,Line3
Guhertina hevî ya kodên feed line jî gengaz e. Her çend kodên veqetandina rêzê tevlihev bin an nenas bin jî, ew dikarin bi karanîna splitlines() werin dabeş kirin û dûv re bi koda veqetandina rêzê ya xwestinê ve werin girêdan.
s_n = '\n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1\nLine2\nLine3'
Wekî ku li jor hatî behs kirin, splitlines() dê koda xêza nû ji hev veqetîne, ji ber vê yekê ne hewce ye ku meriv bi taybetî li ser kodên xêza nû di mijara rêbaza ku splitlines() û join() li hev dike de bifikire.
Ger koda xeta nû zelal be, ew dikare bi rêbaza şûna()-ê jî were guheztin, ku li şûna rêzikê digire.
s = 'Line1\nLine2\nLine3'
print(s.replace('\n', ''))
# Line1Line2Line3
print(s.replace('\n', ','))
# Line1,Line2,Line3
Lêbelê, bala xwe bidin ku ew ê nexebite heke ew ji ya ku tê hêvî kirin kodên feed rêzê yên cûda hebin.
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'
Mimkûn e ku bi dubarekirina şûna () çend kodên xêzên nû werin guheztin, lê heke rêzik xelet be ew ê nexebite ji ber ku “\r\n” “\n” dihewîne. Rêbaza hevberdana splitlines() û join() ku li jor hatî destnîşan kirin ewletir e ji ber ku ne hewce ye ku meriv li ser kodên xwarina rêzê xeman bike.
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
Rêbaza rstrip() bikar bînin da ku li dawiya hevokê kodên xwarina rêzê jêbirin. rstrip () rêbazek e ku meriv tîpên cîhê spî (tevî xêzikên xêzan) li dawiya rastê ya rêzikê jê dike.
s = 'aaa\n'
print(s + 'bbb')
# aaa
# bbb
print(s.rstrip() + 'bbb')
# aaabbb
Hilbera çapkirinê bêyî xêza nû ya paşîn
Fonksiyona çapkirinê () ji hêla xwerû ve xêzek nû ya paşîn lê zêde dike. Ji ber vê yekê, heke çap () li pey hev were darve kirin, dê her encamek li ser rêzek nû were xuyang kirin.
print('a')
print('b')
print('c')
# a
# b
# c
Ev e ji ber ku nirxa xwerû ya argumana dawiya çapê(), ku rêzika ku li dawiyê were zêdekirin diyar dike, sembola xeta nû ye.
Heke hûn di dawiyê de xêzek nû naxwazin, tenê dawiya argumanê li rêzek vala bicîh bikin, û encam dê di dawiyê de bêyî xetek nû derkeve.
print('a', end='')
print('b', end='')
print('c', end='')
# abc
Dawiya arguman dikare her rêzek be.
print('a', end='-')
print('b', end='-')
print('c')
# a-b-c
Lêbelê, heke hûn dixwazin rêzan ji bo derketinê bidin hev, ji diyarkirina wan di argumana dawî ya çapê(). Gotara jêrîn bibînin.
- Gotarên Têkildar:Di Python de girêdan û girêdana rêzan (+ operator, tevlêbûn, hwd.)