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
Il modulo textwrap è anche utile se volete emettere e visualizzare lunghe stringhe avvolgendole o omettendole.
Se avete una catena di metodi che è più lunga di una singola linea di caratteri, piuttosto che una lunga stringa, potete interrompere la linea 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://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
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, potete interrompere liberamente le linee all'interno delle parentesi seguenti. Potete usare questa regola per racchiudere lunghe stringhe di testo tra parentesi.
()
{}
[]
Notate che le parentesi che seguono hanno un significato.
{} = set
[] = list
Pertanto, quando si scrive una lunga stringa su più righe, si usano le parentesi tonde ().
Di nuovo, usando il fatto che più stringhe possono essere concatenate insieme per formare una singola stringa, possiamo scrivere quanto segue.
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
Come nell'esempio con il backslash, l'operatore + è richiesto quando le variabili sono incluse.
s = ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
+ s_var
+ 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb