Python-da çoxlu sətirlərə uzun mətn sətirlərinin yazılması

Biznes

Python-da flake8 kimi PEP8 uyğun kod yoxlayıcısından istifadə etsəniz, sətir 80 simvoldan çox olduqda aşağıdakı xətanı alacaqsınız.
E501 line too long

Mən sizə URL kimi 80-dən çox simvoldan ibarət uzun bir sətiri çoxlu kod sətirinə necə bölməyi göstərəcəyəm.

  • Əks kəsikli xətlərin kəsilməsinə məhəl qoymayın (\)
  • Sətir fasilələri sərbəst şəkildə mötərizələrə daxil edilə bilər

Həmçinin, mətn sarğı modulu uzun sətirləri bükərək və ya qısaldaraq çıxarmaq və göstərmək istəyirsinizsə faydalıdır.

Metod zəncirində sətirdəki simvolların sayı uzun sətirdən daha uzundursa, sətir kodda da pozula bilər.

Əks kəsikli xətlərin kəsilməsinə məhəl qoymayın (\)

Python-da tərs xətt (\) davam simvoludur və sətrin sonunda yerləşdirildikdə, sonrakı sətir kəsimlərinə məhəl qoymur və xəttin davam etdiyini güman edir.

n = 1 + 2 \
    + 3

print(n)
# 6

Həmçinin, bir neçə sətir hərfi ardıcıl olaraq yazıldıqda, onlar aşağıda göstərildiyi kimi tək sətir yaratmaq üçün birləşdirilir.

s = 'aaa' 'bbb'

print(s)
# aaabbb

İkisini birləşdirərək, aşağıda göstərildiyi kimi, bir neçə kod sətirində uzun bir sətir yazıla bilər.

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

Nəzərə alın ki, yalnız sətir literalları (” və ya “” ilə əhatə olunmuş) birləşdirilə bilər və sətirləri ehtiva edən dəyişənlər xəta ilə nəticələnəcək.

s_var = 'xxx'

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

Dəyişənləri bir-birinə və ya dəyişənləri sətir literallarına birləşdirmək üçün + operatorundan istifadə edin.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

Hətta tərs xətt (\) ilə ayrıldıqda belə dəyişənləri birləşdirmək üçün + operatoru tələb olunur.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Sətir fasilələri sərbəst şəkildə mötərizələrə daxil edilə bilər

Python-da aşağıdakı mötərizə içərisində sətirləri sərbəst şəkildə qıra bilərsiniz. Uzun mətn sətirlərini mötərizə içərisinə daxil etmək üçün bu qaydadan istifadə edə bilərsiniz.

  • ()
  • {}
  • []

Qeyd edək ki, aşağıdakı mötərizələrin mənası var.

  • {} = set
  • [] = list

Bu səbəbdən, bir neçə sətir üzərində uzun sətir yazarkən dairəvi mötərizələrdən () istifadə edin.

Yenə də, birdən çox sətir bir sətir yaratmaq üçün birləşdirilə bildiyindən istifadə edərək, aşağıdakıları yaza bilərik.

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 kəsikli nümunədə olduğu kimi, dəyişənlər daxil edildikdə + operatoru tələb olunur.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Copied title and URL