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://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://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 dizelerini parantez içine almak için bu kuralı kullanabilirsiniz.

  • ()
  • {}
  • []

Aşağıdaki parantezlerin bir anlamı olduğunu unutmayın.

  • {} = set
  • [] = list

Bu nedenle, birden çok satıra uzun bir dize yazarken yuvarlak parantez () kullanın.

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

s = ('https://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://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