Používáte-li v jazyce Python program pro kontrolu kódu kompatibilní s PEP8, například flake8, zobrazí se následující chyba, pokud řádek překročí 80 znaků.E501 line too long
Ukážu vám, jak rozdělit dlouhý řetězec o více než 80 znacích, například adresu URL, na více řádků kódu.
- Ignorování zlomů řádků se zpětnými lomítky (\)
- Zlomy řádků lze libovolně uzavírat do závorek.
Modul textwrap je užitečný také v případě, že chcete vypisovat a zobrazovat dlouhé řetězce jejich zabalením nebo vynecháním.
Pokud máte řetězec metod, který je delší než jeden řádek znaků, a ne dlouhý řetězec, můžete jej v kódu také zalomit.
Ignorování zlomů řádků se zpětnými lomítky (\)
V jazyce Python je zpětné lomítko (\) znakem pokračování, a pokud je umístěno na konec řádku, ignoruje následné zalomení řádku a předpokládá, že řádek pokračuje.
n = 1 + 2 \
+ 3
print(n)
# 6
Pokud je zapsáno více řetězcových literálů za sebou, jsou spojeny do jednoho řetězce, jak je znázorněno níže.
s = 'aaa' 'bbb'
print(s)
# aaabbb
Jejich kombinací lze zapsat dlouhý řetězec na více řádcích kódu, jak je uvedeno níže.
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
Všimněte si, že spojovat lze pouze řetězcové literály (uzavřené v ' nebo „“) a proměnné obsahující řetězce budou chybné.
s_var = 'xxx'
# s = 'aaa' s_var 'bbb'
# SyntaxError: invalid syntax
Chcete-li spojit proměnné mezi sebou nebo proměnné do řetězcových literálů, použijte operátor +.
s = 'aaa' + s_var + 'bbb'
print(s)
# aaaxxxbbb
I když jsou odděleny zpětným lomítkem (\), je pro spojování proměnných vyžadován operátor +.
s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'\
+ s_var\
+ 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Zlomy řádků lze libovolně uzavírat do závorek.
V jazyce Python můžete libovolně lámat řádky v následujících závorkách. Toto pravidlo můžete použít k uzavření dlouhých textových řetězců do závorek.
()
{}
[]
Všimněte si, že následující závorky mají svůj význam.
{} = set
[] = list
Proto při zápisu dlouhého řetězce na více řádků používejte kulaté závorky ().
Opět s využitím skutečnosti, že více řetězců lze spojit do jednoho řetězce, můžeme zapsat následující.
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
Stejně jako v příkladu se zpětným lomítkem je operátor + vyžadován, pokud jsou zahrnuty proměnné.
s = ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
+ s_var
+ 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb