Output, concatenate, pamisah, mbusak, lan ngganti strings ngemot newlines ing Python

Bisnis

Ing ngisor iki nerangake operasi string sing ngemot baris anyar ing Python.

  • Nggawe string sing ngemot baris anyar, output print (tampilan)
    • karakter baris anyar (salah siji utawa loro CR lan LF gumantung sistem)\n(LF),\r\n(CR+LF)
    • kutipan telu'',"""
    • Yen sampeyan pengin indent
  • Gabungke dhaptar string karo baris anyar
  • Pisah string menyang baris anyar lan dhaptar:splitlines()
  • Copot lan ngganti kode feed baris
  • Print output tanpa mburi baris anyar

Nggawe string sing ngemot baris anyar, print output

karakter baris anyar (salah siji utawa loro CR lan LF gumantung sistem)\n(LF),\r\n(CR+LF)

Nglebokake kode feed baris ing senar bakal ngasilake baris anyar.

s = 'Line1\nLine2\nLine3'
print(s)
# Line1
# Line2
# Line3

s = 'Line1\r\nLine2\r\nLine3'
print(s)
# Line1
# Line2
# Line3

Kode feed baris bisa digunakake kanthi cara ing ngisor iki. Sawetara editor ngidini sampeyan milih kode break line.

Macを含むUnix系\n(LF)
Windows系\r\n(CR+LF)

kutipan telu'',"""

Yen kuotasi telung digunakake kanggo nutupi senar kasebut, bakal dadi senar apa wae, kalebu baris anyar.

s = '''Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3

Yen sampeyan pengin indent

Tanda kutip telu uga spasi ing senar, dadi yen sampeyan nyoba nulis kanthi rapi ing kode lan indent kaya ing ngisor iki, spasi sing ora perlu bakal dilebokake.

s = '''
    Line1
    Line2
    Line3
    '''
print(s)
# 
#     Line1
#     Line2
#     Line3
#     

Kanthi nggunakake garis miring mundur kanggo nglirwakake baris anyar ing kode lan nggawe baris terusan, bisa ditulis kaya ing ngisor iki

Lampirake saben baris nganggo ” utawa “” lan tambahake karakter baris anyar ←n ing pungkasan ukara.

s = 'Line1\n'\
    'Line2\n'\
    'Line3'
print(s)
# Line1
# Line2
# Line3

Ing kene, sintaks kasebut yaiku literal string berturut-turut digabung. Deleng artikel ing ngisor iki kanggo rincian.

Yen sampeyan pengin nambah indentasi ing senar, mung nambah spasi kanggo senar ing saben baris.

s = 'Line1\n'\
    '    Line2\n'\
    '        Line3'
print(s)
# Line1
#     Line2
#         Line3

Kajaba iku, amarga baris break bisa bebas digawe ing kurung, ing ngisor iki bisa ditulis nggunakake kurung tinimbang backslashes.

s = ('Line1\n'
     'Line2\n'
     'Line3')
print(s)
# Line1
# Line2
# Line3

s = ('Line1\n'
     '    Line2\n'
     '        Line3')
print(s)
# Line1
#     Line2
#         Line3

Yen sampeyan mung pengin nyelarasake wiwitan baris, mung nambah backslash kanggo baris pisanan telung kuotasi.

s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3

s = '''\
Line1
    Line2
        Line3'''
print(s)
# Line1
#     Line2
#         Line3

Gabungke dhaptar string karo baris anyar

Cara senar gabung () bisa digunakake kanggo nggabungake dhaptar senar dadi senar siji.

Nalika gabung () diarani saka karakter baris anyar, saben unsur senar digabung karo baris anyar.

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'

Kaya ing conto ing ndhuwur, fungsi dibangun ing repr () bisa digunakake kanggo mriksa strings sing ngemot kode newline lagi.

Pisah string menyang baris anyar lan dhaptar:splitlines()

Cara senar splitlines () bisa digunakake kanggo pamisah senar menyang dhaptar baris anyar.

splitlines () bakal pamisah samubarang kode break baris ing ngisor iki. Tab vertikal lan break kaca uga dipérang.

  • \n
  • \r\n
  • \v
  • \f
s = 'Line1\nLine2\r\nLine3'
print(s.splitlines())
# ['Line1', 'Line2', 'Line3']

Copot lan ngganti kode feed baris

Kanthi nggabungke splitlines () lan gabung (), bisa mbusak (mbusak) kode newline saka senar ngemot newlines utawa ngganti karo strings liyane.

s = 'Line1\nLine2\r\nLine3'

print(''.join(s.splitlines()))
# Line1Line2Line3

print(' '.join(s.splitlines()))
# Line1 Line2 Line3

print(','.join(s.splitlines()))
# Line1,Line2,Line3

Ganti kumpulan kode feed baris uga bisa. Malah yen kode line break pipis utawa dingerteni, padha bisa dipérang nggunakake splitlines () lan banjur concatenated karo kode baris break dikarepake.

s_n = '\n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3

print(repr(s_n))
# 'Line1\nLine2\nLine3'

Kaya kasebut ing ndhuwur, splitlines () bakal pamisah salah siji kode newline, supaya ana ora perlu utamané ngangap bab kode newline ing cilik saka cara nggabungke splitlines () lan nggabungake ().

Yen kode newline cetha, bisa uga diganti dening ngganti () cara, kang ngganti senar.

s = 'Line1\nLine2\nLine3'

print(s.replace('\n', ''))
# Line1Line2Line3

print(s.replace('\n', ','))
# Line1,Line2,Line3

Elinga, Nanging, iku ora bakal bisa yen ngemot kode feed baris beda saka samesthine.

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'

Sampeyan bisa ngganti sawetara kode newline dening mbaleni ngganti (), nanging ora bakal bisa yen urutan salah amarga “\r\n” ngandhut “\n”. Cara nggabungake splitlines () lan nggabungake () diterangake ing ndhuwur iku luwih aman amarga ora perlu sumelang ing bab kode feed baris.

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

Gunakake rstrip () cara kanggo mbusak kode feed baris ing mburi ukara. rstrip () iku cara kanggo mbusak karakter spasi putih (kalebu feed baris) ing mburi tengen senar.

s = 'aaa\n'
print(s + 'bbb')
# aaa
# bbb

print(s.rstrip() + 'bbb')
# aaabbb

Print output tanpa mburi baris anyar

Fungsi print () nambahake garis anyar sing mburine minangka standar. Mulane, yen print () kaleksanan ing kasuksesan, saben asil output bakal ditampilake ing baris anyar.

print('a')
print('b')
print('c')
# a
# b
# c

Iki amarga nilai standar saka argumen pungkasan print (), sing nemtokake string sing bakal ditambahake ing pungkasan, minangka simbol baris anyar.

Yen sampeyan ora pengin baris anyar ing mburi, mung nyetel argumen pungkasan menyang string kosong, lan output bakal output tanpa baris anyar ing mburi.

print('a', end='')
print('b', end='')
print('c', end='')
# abc

Ujung argumen bisa dadi string apa wae.

print('a', end='-')
print('b', end='-')
print('c')
# a-b-c

Nanging, yen sampeyan pengin concatenate strings kanggo output, iku luwih gampang kanggo concatenate strings asli saka kanggo nemtokake ing pitakonan pungkasan print (). Waca artikel ing ngisor iki.

Copied title and URL