Πώς να χρησιμοποιήσετε Python String-Literal Modifiers

Μάθετε αυτήν την απλή τεχνική για την τροποποίηση της συμπεριφοράς των συμβολοσειρών Python

Φωτογραφία από το davide ragusa στο Unsplash

Η Python είναι τόσο απλή αλλά ευέλικτη - μου αρέσει. Η γλώσσα είναι εύκολη στην ανάγνωση, και βρήκα τον εαυτό μου να κάνει ελάχιστες περιπλοκές σχετικά με τη σύνταξη και τις συμβάσεις.

Python string-literal τροποποιητές είναι γράμματα ακριβώς μπροστά από μια συμβολοσειρά. Για τους απροσδόκητους, μοιάζουν με τυπογραφικά λάθη. Αυτό που πραγματικά κάνουν είναι να αλλάξει τη συμπεριφορά αυτής της συμβολοσειράς - ανάλογα με τα γράμματα που χρησιμοποιούνται.

Ας εισαγάγουμε κάθε τροποποιητή και να δείξουμε την προκύπτουσα τροποποίηση.

Τροποποιητής String Unicode

Αυτός ο τροποποιητής συμβολοσειρών ισχύει μόνο για το Python 2.x. Χρησιμοποιώντας το γράμμα u στην αρχή της συμβολοσειράς το μετατρέπει σε Unicode, ξεκλειδώνοντας ένα ευρύτερο σύνολο χαρακτήρων σε βάρος της λήψης περισσότερης μνήμης.

sys.getsizeof ("γεια κόσμο") # 48 sys.getsizeof (u "hello world") # 96

Για το Python 3.x, οι συμβολοσειρές είναι Unicode από προεπιλογή, οπότε ο τροποποιητής δεν θα έκανε τίποτα.

Τροποποιητής συμβολοσειράς δυφιολέξεων

Αυτός ο τροποποιητής συμβολοσειράς είναι το αντίθετο από τον τροποποιητή συμβολοσειράς Unicode. Τοποθετώντας το γράμμα b στην αρχή μιας συμβολοσειράς, θα μετατραπεί σε ASCII. Σε βάρος ενός μικρότερου συνόλου χαρακτήρων, αυτή η συμβολοσειρά θα πάρει λιγότερη μνήμη.

sys.getsizeof ("hello world") # 96 sys.getsizeof (b "hello world") # 48

Εάν δεν το έχετε πάρει ακόμα, ο τροποποιητής string byte ισχύει μόνο για το Python 3.x - καθώς οι συμβολοσειρές Python 2.x είναι σε ASCII από προεπιλογή.

Τροποποιητής ακατέργαστων συμβολοσειρών

Χρησιμοποιήστε το γράμμα r πριν από μια συμβολοσειρά για να εκφράσετε αυτόν τον χαρακτήρα συμβολοσειράς για χαρακτήρα-όπως είναι. Αυτό που σημαίνει είναι διαφυγόντες χαρακτήρες δεν θα εκφραστεί ως ειδικός χαρακτήρας τους, αλλά ως απλό κείμενο.

εκτύπωση ("hello \ nworld") "" "hello world" ""
εκτύπωση (r "hello \ nworld") "" "hello \ nworld" ""

Τροποποίηση τροποποιητή συμβολοσειράς

Ο τροποποιητής μορφοτύπου εισήχθη στην Python 3.6 και σας επιτρέπει να εκφράσετε μεταβλητές μέσα σε μια συμβολοσειρά.

όνομα = "Jonathan" εκτύπωση (f "Hello {όνομα}") # Γεια σας Jonathan

Υπάρχουν πολλοί τρόποι για να εκτυπώσετε μια μεταβλητή σε μια συμβολοσειρά, αλλά οι χορδές f έχουν γίνει η μέθοδος μου. Απλά βεβαιωθείτε ότι εκτελείτε τον κώδικα σας στο 3.6+, αλλιώς θα λάβετε ένα συντακτικό σφάλμα.