Εάν χρησιμοποιείτε έναν ελεγκτή κώδικα συμβατό με την PEP8, όπως το flake8 στην Python, θα λάβετε το ακόλουθο σφάλμα όταν μια γραμμή υπερβαίνει τους 80 χαρακτήρες.E501 line too long
Θα σας δείξω πώς να σπάσετε μια μεγάλη συμβολοσειρά άνω των 80 χαρακτήρων, όπως μια διεύθυνση URL, σε πολλές γραμμές κώδικα.
- Αγνοήστε τα διαλείμματα γραμμής με backslashes (\)
- Τα διαλείμματα γραμμής μπορούν να περικλείονται ελεύθερα σε παρενθέσεις
Η ενότητα textwrap είναι επίσης χρήσιμη αν θέλετε να εξάγετε και να εμφανίσετε μεγάλες συμβολοσειρές τυλίγοντάς τις ή παραλείποντάς τες.
Αν έχετε μια αλυσίδα μεθόδων που είναι μεγαλύτερη από μια γραμμή χαρακτήρων, αντί για μια μεγάλη συμβολοσειρά, μπορείτε να σπάσετε και τη γραμμή στον κώδικα.
Αγνοήστε τα διαλείμματα γραμμής με backslashes (\)
Στην Python, η backslash (\) είναι ένας χαρακτήρας συνέχισης, και όταν τοποθετείται στο τέλος μιας γραμμής, αγνοεί τα επόμενα διαλείμματα γραμμής και θεωρεί ότι η γραμμή συνεχίζεται.
n = 1 + 2 \
+ 3
print(n)
# 6
Επίσης, όταν γράφονται διαδοχικά πολλαπλά γραμματικά αλφαριθμητικά, αυτά συνενώνονται για να σχηματίσουν ένα ενιαίο αλφαριθμητικό, όπως φαίνεται παρακάτω.
s = 'aaa' 'bbb'
print(s)
# aaabbb
Συνδυάζοντας τα δύο, μια μεγάλη συμβολοσειρά μπορεί να γραφτεί σε πολλές γραμμές κώδικα, όπως φαίνεται παρακάτω.
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
Σημειώστε ότι μόνο τα γραμματικά αλφαριθμητικά (που περικλείονται σε ' ή «») μπορούν να συνδεθούν, και οι μεταβλητές που περιέχουν αλφαριθμητικά θα οδηγήσουν σε σφάλμα.
s_var = 'xxx'
# s = 'aaa' s_var 'bbb'
# SyntaxError: invalid syntax
Για να συνδέσετε μεταβλητές μεταξύ τους ή μεταβλητές σε αλφαριθμητικά, χρησιμοποιήστε τον τελεστή +.
s = 'aaa' + s_var + 'bbb'
print(s)
# aaaxxxbbb
Ακόμη και όταν διαχωρίζονται με backslash (\), ο τελεστής + απαιτείται για τη συνένωση μεταβλητών.
s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'\
+ s_var\
+ 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Τα διαλείμματα γραμμής μπορούν να περικλείονται ελεύθερα σε παρενθέσεις
Στην Python, μπορείτε να διακόπτετε ελεύθερα τις γραμμές μέσα στις ακόλουθες παρενθέσεις. Μπορείτε να χρησιμοποιήσετε αυτόν τον κανόνα για να περικλείετε μεγάλες σειρές κειμένου σε παρενθέσεις.
()
{}
[]
Σημειώστε ότι οι παρενθέσεις που ακολουθούν έχουν νόημα.
{} = set
[] = list
Επομένως, όταν γράφετε μια μεγάλη συμβολοσειρά σε πολλές γραμμές, χρησιμοποιήστε στρογγυλές αγκύλες ().
Και πάλι, χρησιμοποιώντας το γεγονός ότι πολλαπλές συμβολοσειρές μπορούν να συνδεθούν μεταξύ τους για να σχηματίσουν μια ενιαία συμβολοσειρά, μπορούμε να γράψουμε τα εξής.
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
Όπως και στο παράδειγμα με την backslash, ο τελεστής + απαιτείται όταν περιλαμβάνονται μεταβλητές.
s = ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
+ s_var
+ 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb