Se usate un controllore di codice conforme a PEP8 come flake8 in Python, otterrete il seguente errore quando una linea supera gli 80 caratteri.E501 line too long
Vi mostrerò come spezzare una lunga stringa di più di 80 caratteri, come un URL, in più righe di codice.
- Ignora le interruzioni di riga con backslash (\)
- Le interruzioni di riga possono essere liberamente racchiuse tra parentesi
Inoltre, il modulo textwrap è utile se volete emettere e visualizzare lunghe stringhe avvolgendole o abbreviandole.
Se il numero di caratteri in una linea è più lungo in una catena di metodi che in una stringa lunga, la linea può essere interrotta anche nel codice.
Ignora le interruzioni di riga con backslash (\)
In Python, il backslash (\) è un carattere di continuazione, e quando è posto alla fine di una linea, ignora le successive interruzioni di linea e assume che la linea stia continuando.
n = 1 + 2 \
+ 3
print(n)
# 6
Inoltre, quando più letterali di stringa sono scritti in successione, sono concatenati per formare una singola stringa come mostrato di seguito.
s = 'aaa' 'bbb'
print(s)
# aaabbb
Combinando le due cose, una lunga stringa può essere scritta in più righe di codice, come mostrato qui sotto.
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
Si noti che solo i letterali di stringa (racchiusi in ' o “”) possono essere concatenati, e le variabili che contengono stringhe risulteranno in un errore.
s_var = 'xxx'
# s = 'aaa' s_var 'bbb'
# SyntaxError: invalid syntax
Per concatenare variabili tra loro o variabili a letterali di stringa, usate l'operatore +.
s = 'aaa' + s_var + 'bbb'
print(s)
# aaaxxxbbb
Anche quando sono separati da un backslash (\), l'operatore + è necessario per concatenare le variabili.
s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'\
+ s_var\
+ 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Le interruzioni di riga possono essere liberamente racchiuse tra parentesi
In Python, è possibile interrompere liberamente le linee all'interno delle parentesi seguenti. Potete usare questa regola per racchiudere lunghe stringhe di testo tra parentesi.
()
{}
[]
Notate che alcune parentesi sono usate in altri modi, come mostrato qui sotto, quindi usate le parentesi tonde () per questi usi.
{}
Set: Set[]
: Lista
Di nuovo, usando il fatto che più stringhe possono essere concatenate insieme per formare una singola stringa, possiamo scrivere quanto segue
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
Come nell'esempio con il backslash, l'operatore + è richiesto quando le variabili sono incluse.
s = ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
+ s_var
+ 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb