Εγγραφή μεγάλων σειρών κειμένου σε πολλαπλές γραμμές στην Python

Επιχείρηση

Εάν χρησιμοποιείτε έναν ελεγκτή κώδικα συμβατό με την 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://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

Σημειώστε ότι μόνο τα γραμματικά αλφαριθμητικά (που περικλείονται σε ' ή «») μπορούν να συνδεθούν, και οι μεταβλητές που περιέχουν αλφαριθμητικά θα οδηγήσουν σε σφάλμα.

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, μπορείτε να διακόπτετε ελεύθερα τις γραμμές μέσα στις ακόλουθες παρενθέσεις. Μπορείτε να χρησιμοποιήσετε αυτόν τον κανόνα για να περικλείετε μεγάλες σειρές κειμένου σε παρενθέσεις.

  • ()
  • {}
  • []

Σημειώστε ότι ορισμένες παρενθέσεις χρησιμοποιούνται με άλλους τρόπους, όπως φαίνεται παρακάτω, οπότε χρησιμοποιήστε στρογγυλές αγκύλες () για τέτοια χρήση.

  • {}Σετ: …
  • []: Λίστα

Και πάλι, χρησιμοποιώντας το γεγονός ότι πολλαπλές συμβολοσειρές μπορούν να συνδεθούν μεταξύ τους για να σχηματίσουν μια ενιαία συμβολοσειρά, μπορούμε να γράψουμε τα εξής

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

Όπως και στο παράδειγμα με την backslash, ο τελεστής + απαιτείται όταν περιλαμβάνονται μεταβλητές.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb