Python’da yeni satırlar içeren dizeleri çıktılayın, birleştirin, bölün, silin ve değiştirin

Aşağıda Python’da yeni satırlar içeren dizelerin çalışması açıklanmaktadır.

  • Yeni satırlar içeren dize oluşturun, çıktıyı yazdırın (ekran)
    • yeni satır karakteri (sisteme bağlı olarak CR ve LF’den biri veya her ikisi)\n(LF),\r\n(CR+LF)
    • üçlü alıntı'',"""
    • girinti yapmak istiyorsanız
  • Yeni satırlarla dizelerin listesini birleştir
  • Dizeyi yeni satırlara ve listeye böl:splitlines()
  • Satır besleme kodlarını kaldırın ve değiştirin
  • Sondaki yeni satır olmadan çıktıyı yazdır

Yeni satırlar içeren dize oluşturun, çıktıyı yazdırın

yeni satır karakteri (sisteme bağlı olarak CR ve LF’den biri veya her ikisi)\n(LF),\r\n(CR+LF)

Bir dizeye satır besleme kodu eklemek, yeni bir satıra neden olur.

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

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

Satır besleme kodları aşağıdaki şekillerde kullanılabilir. Bazı düzenleyiciler bir satır sonu kodu seçmenize izin verir.

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

üçlü alıntı'',"""

Dizeyi içine almak için üçlü tırnak kullanılırsa, yeni satırlar da dahil olmak üzere olduğu gibi bir dize olacaktır.

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

girinti yapmak istiyorsanız

Üçlü tırnaklar da bir dizedeki boşluklardır, bu nedenle aşağıda gösterildiği gibi kodda ve girintide düzgün bir şekilde yazmaya çalışırsanız, gereksiz boşluklar eklenecektir.

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

Koddaki yeni satırları yok saymak ve devam satırı yapmak için ters eğik çizgi kullanarak aşağıdaki gibi yazılabilir.

Her satırı ” veya “” içine alın ve cümlenin sonuna yeni satır karakteri ←n ekleyin.

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

Burada sözdizimi, ardışık dize değişmezlerinin birleştirilmesidir. Ayrıntılar için aşağıdaki makaleye bakın.

Bir dizeye girinti eklemek istiyorsanız, dizeye her satırda bir boşluk eklemeniz yeterlidir.

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

Ayrıca parantez içinde satır sonları serbestçe yapılabildiğinden, ters eğik çizgi yerine parantez kullanılarak aşağıdakiler yazılabilir.

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

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

Yalnızca bir satırın başlangıcını hizalamak istiyorsanız, üç tırnak işaretinin ilk satırına bir ters eğik çizgi eklemeniz yeterlidir.

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

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

Yeni satırlarla dizelerin listesini birleştir

string yöntemi join(), bir dize listesini tek bir dizede birleştirmek için kullanılabilir.

Bir satırsonu karakterinden join() çağrıldığında, her dize öğesi bir satırsonu ile birleştirilir.

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'

Yukarıdaki örnekte olduğu gibi, repr() yerleşik işlevi, yeni satır kodlarını olduğu gibi içeren dizeleri kontrol etmek için kullanılabilir.

Dizeyi yeni satırlara ve listeye böl:splitlines()

Dize yöntemi splitlines(), bir dizeyi yeni satırlar listesine bölmek için kullanılabilir.

splitlines() aşağıdaki satır sonu kodlarından herhangi birini böler. Dikey sekmeler ve sayfa sonları da bölünür.

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

Satır besleme kodlarını kaldırın ve değiştirin

Splitlines() ve join()’i birleştirerek, yeni satırlar içeren bir dizeden yeni satır kodlarını kaldırmak (kaldırmak) veya bunları başka dizelerle değiştirmek mümkündür.

s = 'Line1\nLine2\r\nLine3'

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

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

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

Satır besleme kodlarının toplu olarak değiştirilmesi de mümkündür. Satır sonu kodları karışık veya bilinmiyor olsa bile, splitlines() kullanılarak bölünebilir ve ardından istenen satır sonu koduyla birleştirilebilir.

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

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

Yukarıda bahsedildiği gibi, splitlines() yeni satır kodlarından herhangi birini bölecektir, bu nedenle splitlines() ve join()’i birleştiren yöntem durumunda özellikle yeni satır kodları hakkında endişelenmenize gerek yoktur.

Yeni satır kodu açıksa, dizenin yerini alan replace() yöntemiyle de değiştirilebilir.

s = 'Line1\nLine2\nLine3'

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

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

Ancak, beklenenden farklı satır besleme kodları içeriyorsa çalışmayacağını unutmayın.

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'

replace()’i tekrarlayarak birden çok yeni satır kodunu değiştirmek mümkündür, ancak “\r\n”, “\n” içerdiğinden sipariş yanlışsa çalışmaz. Yukarıda açıklanan splitlines() ve join()’i birleştirme yöntemi, satır besleme kodları hakkında endişelenmenize gerek olmadığından daha güvenlidir.

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

Bir cümlenin sonundaki satır besleme kodlarını kaldırmak için rstrip() yöntemini kullanın. rstrip(), bir dizenin sağ ucundaki boşluk karakterlerini (satır beslemeleri dahil) kaldırma yöntemidir.

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

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

Sondaki yeni satır olmadan çıktıyı yazdır

print() işlevi, varsayılan olarak sonuna bir yeni satır ekler. Bu nedenle, print() art arda yürütülürse, her çıktı sonucu yeni bir satırda görüntülenecektir.

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

Bunun nedeni, sonuna eklenecek dizeyi belirten print() end argümanının varsayılan değerinin yeni satır sembolü olmasıdır.

Sonunda yeni bir satır istemiyorsanız, end argümanını boş bir dizeye ayarlayın ve çıktı sonunda yeni satır olmadan çıkacaktır.

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

Argüman sonu herhangi bir dize olabilir.

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

Ancak, çıktı için dizeleri birleştirmek istiyorsanız, orijinal dizeleri birleştirmek, onları print()’in son argümanında belirtmekten daha kolaydır. Aşağıdaki makaleye bakın.

Copied title and URL