Python’da birden çok satıra uzun metin dizeleri yazma

Python’da flake8 gibi PEP8 uyumlu bir kod denetleyicisi kullanırsanız, bir satır 80 karakteri aştığında aşağıdaki hatayı alırsınız.
E501 line too long

URL gibi 80’den fazla karakterden oluşan uzun bir dizeyi birden çok kod satırına nasıl böleceğinizi göstereceğim.

  • Ters eğik çizgiyle (\) satır sonlarını yoksay
  • Satır sonları serbestçe parantez içine alınabilir

Ayrıca, metin sarma modülü, uzun dizeleri sararak veya kısaltarak çıktı almak ve görüntülemek istiyorsanız kullanışlıdır.

Bir satırdaki karakter sayısı bir yöntem zincirinde uzun bir dizeden daha uzunsa, satır kodda da bölünebilir.

Ters eğik çizgiyle (\) satır sonlarını yoksay

Python’da ters eğik çizgi (\) bir devam karakteridir ve bir satırın sonuna yerleştirildiğinde sonraki satır sonlarını yok sayar ve satırın devam ettiğini varsayar.

n = 1 + 2 \
    + 3

print(n)
# 6

Ayrıca, art arda birden çok dize değişmezi yazıldığında, aşağıda gösterildiği gibi tek bir dize oluşturacak şekilde birleştirilirler.

s = 'aaa' 'bbb'

print(s)
# aaabbb

İkisini birleştirerek, aşağıda gösterildiği gibi birden çok kod satırına uzun bir dize yazılabilir.

s = 'https://ja.wikipedia.org/wiki/'\
    '%E3%83%97%E3%83%AD%E3%82%B0%E3%83'\
    '%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E'

print(s)
# https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E

Yalnızca dize değişmezlerinin (‘ veya “” içine alınmış) birleştirilebileceğini ve dizeleri içeren değişkenlerin hatayla sonuçlanacağını unutmayın.

s_var = 'xxx'

# s = 'aaa' s_var 'bbb'
# SyntaxError: invalid syntax

Değişkenleri birbirine veya değişkenleri dizge değişmezlerine bağlamak için + operatörünü kullanın.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

Bir ters eğik çizgi (\) ile ayrıldığında bile, değişkenleri birleştirmek için + operatörü gereklidir.

s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'\
    + s_var\
    + 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Satır sonları serbestçe parantez içine alınabilir

Python’da aşağıdaki parantez içindeki satırları özgürce kesebilirsiniz. Uzun metin dizilerini parantez içine almak için bu kuralı kullanabilirsiniz.

  • ()
  • {}
  • []

Bazı parantezlerin aşağıda gösterildiği gibi başka şekillerde kullanıldığını unutmayın, bu nedenle bu tür kullanım için yuvarlak parantez () kullanın.

  • {}Hazır hazır
  • []: Liste

Yine, birden fazla dizginin bir araya getirilerek tek bir dizge oluşturulabileceği gerçeğini kullanarak aşağıdakileri yazabiliriz.

s = ('https://ja.wikipedia.org/wiki/'
     '%E3%83%97%E3%83%AD%E3%82%B0%E3%83'
     '%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E')

print(s)
# https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E

Ters eğik çizgili örnekte olduğu gibi, değişkenler dahil edildiğinde + operatörü gereklidir.

s = ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
     + s_var
     + 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Copied title and URL