Python дээр шинэ мөр агуулсан мөрүүдийг гаргах, холбох, хуваах, устгах, солих

Бизнес эрхэлдэг

Дараах нь Python дээр шинэ мөр агуулсан мөрүүдийн ажиллагааг тайлбарласан болно.

  • Шинэ мөр агуулсан мөр үүсгэх, хэвлэх гаралт (дэлгэц)
    • шинэ мөрийн тэмдэгт (системээс хамааран CR ба LF-ийн аль нэг нь эсвэл хоёулаа)\n(LF),\r\n(CR+LF)
    • гурвалсан ишлэл'',"""
    • Догол оруулахыг хүсвэл
  • Мөрийн жагсаалтыг шинэ мөртэй холбоно
  • Мөрийг шинэ мөр болон жагсаалт болгон хуваа:splitlines()
  • Шугамын тэжээлийн кодыг устгаж, солих
  • Гаралтыг шинэ мөргүйгээр хэвлэх

Шинэ мөр агуулсан мөр үүсгэх, гаралтыг хэвлэх

шинэ мөрийн тэмдэгт (системээс хамааран CR ба LF-ийн аль нэг нь эсвэл хоёулаа)\n(LF),\r\n(CR+LF)

Мөр доторх мөрний тэжээлийн кодыг оруулснаар шинэ мөр гарч ирнэ.

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

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

Шугамын тэжээлийн кодыг дараах байдлаар ашиглаж болно. Зарим засварлагчид мөр таслах кодыг сонгох боломжийг олгодог.

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

гурвалсан ишлэл'',"""

Хэрэв мөрийг хавсаргахад гурвалсан хашилт ашигласан бол энэ нь шинэ мөрийг оруулаад байгаа шиг мөр болно.

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

Догол оруулахыг хүсвэл

Гурвалсан хашилт нь мөн тэмдэгт мөрний хоосон зай тул кодыг цэгцтэй бичиж, доор үзүүлсэн шиг догол оруулахыг оролдвол шаардлагагүй хоосон зай оруулах болно.

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

Кодын шинэ мөрийг үл тоомсорлож, үргэлжлэл мөр болгохын тулд урвуу зураасыг ашигласнаар дараах байдлаар бичиж болно.

Мөр бүрийг ” эсвэл “”-ээр хааж, өгүүлбэрийн төгсгөлд шинэ мөрийн тэмдэгт ←n нэмнэ үү.

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

Энд синтакс нь дараалсан мөрийн литералуудыг нэгтгэдэг. Дэлгэрэнгүйг дараах нийтлэлээс үзнэ үү.

Хэрэв та мөрөнд догол оруулахыг хүсвэл мөр бүрт хоосон зай нэмнэ үү.

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

Түүнчлэн хаалтанд мөр таслахыг чөлөөтэй хийх боломжтой тул урвуу ташуу зураасны оронд хаалтанд дараах зүйлийг бичиж болно.

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

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

Хэрэв та мөрийн эхлэлийг зэрэгцүүлэхийг хүсвэл гурвалсан хашилтын эхний мөрөнд урвуу зураас нэмэхэд л хангалттай.

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

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

Мөрийн жагсаалтыг шинэ мөртэй холбоно

Тэмдэгт мөрийн жагсаалтыг нэг мөр болгон нэгтгэхэд join() аргыг ашиглаж болно.

join()-г шинэ мөрийн тэмдэгтээс дуудах үед мөр элемент бүрийг шинэ мөртэй холбодог.

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'

Дээрх жишээн дээр суулгасан repr() функцийг шинэ мөрийн код агуулсан мөрүүдийг шалгахад ашиглаж болно.

Мөрийг шинэ мөр болон жагсаалт болгон хуваа:splitlines()

Мөрийг шинэ мөрийн жагсаалтад хуваахад splitlines() аргыг ашиглаж болно.

splitlines() нь дараах мөр таслах кодын аль нэгийг хуваах болно. Босоо таб болон хуудасны завсарлага нь мөн хуваагдана.

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

Шугамын тэжээлийн кодыг устгаж, солих

Splitlines() болон join()-г хослуулснаар шинэ мөр агуулсан мөрийн кодыг устгах (устгах) эсвэл өөр мөрөөр солих боломжтой.

s = 'Line1\nLine2\r\nLine3'

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

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

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

Шугамын тэжээлийн кодыг багцаар солих боломжтой. Мөр таслах кодууд холилдсон эсвэл үл мэдэгдэх байсан ч тэдгээрийг splitlines() ашиглан хувааж, дараа нь хүссэн мөр таслах кодтой холбож болно.

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

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

Дээр дурьдсанчлан splitlines() нь шинэ мөрийн аль нэг кодыг хуваах тул splitlines() болон join()-ыг хослуулсан аргын хувьд шинэ мөрийн кодуудын талаар санаа зовох шаардлагагүй болно.

Хэрэв шинэ мөрийн код тодорхой бол түүнийг мөн мөрийг орлуулдаг replace() аргаар сольж болно.

s = 'Line1\nLine2\nLine3'

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

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

Гэхдээ энэ нь хүлээгдэж байснаас өөр шугамын код агуулсан бол ажиллахгүй гэдгийг анхаарна уу.

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'

Олон тооны шинэ мөрийн кодыг солих()-ыг давтах замаар солих боломжтой боловч “\r\n” нь “\n”-г агуулж байгаа тул дараалал буруу байвал ажиллахгүй. Дээр тайлбарласан splitlines() болон join()-г хослуулсан арга нь мөрийн тэжээлийн кодуудын талаар санаа зовох шаардлагагүй тул илүү аюулгүй юм.

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

Өгүүлбэрийн төгсгөлд байгаа мөрийн кодыг арилгахын тулд rstrip() аргыг ашиглана уу. rstrip() нь мөрийн баруун төгсгөлд байгаа хоосон зайны тэмдэгтүүдийг (мөрний тэжээлийг оруулаад) арилгах арга юм.

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

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

Гаралтыг шинэ мөргүйгээр хэвлэх

Print() функц нь анхдагчаар арын шинэ мөрийг нэмдэг. Тиймээс, хэрэв print()-ийг дараалан гүйцэтгэвэл гаралтын үр дүн бүр шинэ мөрөнд харагдах болно.

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

Учир нь төгсгөлд нэмэх мөрийг зааж өгдөг print() төгсгөлийн аргументын анхдагч утга нь шинэ мөрийн тэмдэг юм.

Хэрэв та төгсгөлд шинэ мөр оруулахыг хүсэхгүй байгаа бол аргументын төгсгөлийг хоосон мөр болгон тохируулахад хангалттай бөгөөд гаралт нь төгсгөлд шинэ мөргүйгээр гарна.

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

Аргументийн төгсгөл нь ямар ч мөр байж болно.

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

Гэсэн хэдий ч, хэрэв та гаралтын мөрүүдийг холбохыг хүсч байвал тэдгээрийг print()-ийн төгсгөлийн аргумент дээр зааж өгөхөөс илүү анхны мөрүүдийг хооронд нь холбох нь илүү хялбар байдаг. Дараах нийтлэлийг үзнэ үү.