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ır karakteri (sisteme bağlı olarak CR ve LF’den biri veya her ikisi)
- 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.