Python Μορφή συμβολοσειράς () Εξηγήστε με EXAMPLES

⚡ Έξυπνη Σύνοψη

Python Η μέθοδος String format() είναι μια ενσωματωμένη μέθοδος που αντικαθιστά τα placeholders με σγουρές αγκύλες μέσα σε μια συμβολοσειρά προτύπου με παρεχόμενες τιμές. Τα placeholders δέχονται κενές αγκύλες, δείκτες θέσης ή ονόματα λέξεων-κλειδιών και υποστηρίζουν προσδιοριστές μορφοποίησης αριθμού, στοίχισης και συμπλήρωσης για την τελική έξοδο.

  • 🔤 Placeholders: Οι αγκύλες {} υποδεικνύουν πού πηγαίνουν οι τιμές — κενές, αριθμημένες {0} ή ονομασμένες {name}.
  • 🔢 Θέση και λέξη-κλειδί: Η format() γεμίζει τις κενές αγκύλες με τη σειρά, κατά θέση στο ευρετήριο ή με βάση τα αντίστοιχα ονόματα λέξεων-κλειδιών.
  • Προδιαγραφές μορφής: Μια άνω και κάτω τελεία προσθέτει κωδικούς όπως {:d}, {:b}, {:.2f} και {:x} για δεκαδική, δυαδική, σταθερής υποδιαστολής και δεκαεξαδική έξοδο.
  • ↔️ Ευθυγράμμιση και συμπλήρωση: Αριθμοί πλάτους με {:^10} ή {:,} στο κέντρο του κειμένου, προσθήκη κενού και εισαγωγή διαχωριστικών χιλιάδων.
  • 🧱 Αντικείμενα και λεξικά: Τα placeholders διαβάζουν τα χαρακτηριστικά της κλάσης με {c.attr} και τις τιμές του λεξικού με {m[κλειδί]}.
  • 🤖 Βοήθεια AI: Οι βοηθοί κωδικοποίησης τεχνητής νοημοσύνης δημιουργούν κλήσεις format() και ισοδύναμα f-string από προτροπές απλής γλώσσας.

Python Μορφή συμβολοσειράς ()

Τι είναι Python Μορφή συμβολοσειράς();

Python Μορφή συμβολοσειράς () είναι μια συνάρτηση που χρησιμοποιείται για την αντικατάσταση, την αντικατάσταση ή τη μετατροπή της συμβολοσειράς με σύμβολα κράτησης θέσης με έγκυρες τιμές στην τελική συμβολοσειρά. Είναι μια ενσωματωμένη λειτουργία του Python κλάση συμβολοσειράς, η οποία επιστρέφει τη μορφοποιημένη συμβολοσειρά ως έξοδο. Τα σύμβολα κράτησης θέσης μέσα στη συμβολοσειρά ορίζονται σε σγουρές αγκύλες.

Για παράδειγμα, «Καλώς ήρθατε στο Guru99 {}”.format('τιμή εδώ').

Σύνταξη της συνάρτησης format() σε Python

templatestring.format(val1, val2...)

Παράμετροι

val1, val2… : Οι τιμές που πρέπει να αντικατασταθούν στη δεδομένη συμβολοσειρά προτύπου που έχει σύμβολα κράτησης θέσης με τη μορφή αγκύλων {}. Τα σύμβολα κράτησης θέσης μπορεί να είναι συμβολοσειρά, ζεύγος κλειδιού/τιμής, ακέραιοι, αριθμοί κινητής υποδιαστολής, χαρακτήρες κ.λπ.

Τιμή επιστροφής

Θα επιστρέψει την τελική συμβολοσειρά, με τις έγκυρες τιμές να αντικατασταθούν στη θέση των θέσεων κράτησης θέσης που δίνονται σε σγουρές αγκύλες.

Χώροι κράτησης θέσης

Τα σύμβολα κράτησης θέσης στη συμβολοσειρά προτύπου αναπαρίστανται χρησιμοποιώντας σγουρές αγκύλες, π.χ. {}. Το σύμβολο κράτησης θέσης μπορεί να είναι κενό {}, ή μπορεί να έχει μια μεταβλητή για π.χ. {name} , ή μπορεί να έχει αριθμό ευρετηρίου π.χ. {0} , {1} κ.λπ.

Πώς λειτουργεί η μορφή string ();

The Python Μορφή συμβολοσειράς () μέθοδος θα σαρώσει τις αρχικές συμβολοσειρές για σύμβολα κράτησης θέσης. Τα σύμβολα κράτησης θέσης μπορεί να είναι κενές αγκύλες ({}), ορίσματα θέσης, δηλαδή η συμβολοσειρά μπορεί να έχει σύμβολα κράτησης θέσης με ευρετήριο 0, 1 για π.χ. {0}, {1} κ.λπ.

Για ορίσματα λέξεων-κλειδιών, το όνομα της μεταβλητής θα υπάρχει μέσα στις αγκύλες για π.χ. {name}, {age}. Στην περίπτωση κενών αγκύλων, οι τιμές από τη μορφή θα αντικατασταθούν μέσα στις σγουρές αγκύλες με τη σειρά.

Η πρώτη τιμή θα αντικατασταθεί με την πρώτη κενή σγουρή αγκύλη, ακολουθούμενη από την επόμενη. Για ορίσματα θέσης, ο δείκτης θα ξεκινά από το 0 και ούτω καθεξής. Οι τιμές θα είναι διαθέσιμες σε μορφή διαχωρισμένες με κόμματα και 0th Η τιμή θα δείχνει στην πρώτη τιμή εντός της μορφής και ούτω καθεξής.

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

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

Παράδειγμα: Το κενό Placeholder αντικαταστάθηκε με μια τιμή συμβολοσειράς

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

Η τιμή που θέλουμε να αντικατασταθεί είναι μια συμβολοσειρά.

Παράδειγμα:

Χρήση της μορφοποίησης συμβολοσειρών σε Python, θέλουμε οι αγκύλες ({}) να αντικατασταθούν με μια τιμή συμβολοσειράς. Η τιμή δίνεται στο format(“Guru99"). Κατά την εκτέλεση, οι αγκύλες {} αντικαθίστανται με Guru99, και θα λάβετε την τελική συμβολοσειρά ως Καλώς ορίσατε στο Guru99 εκπαιδευτικά σεμινάρια.

print ("Welcome to {} tutorials".format("Guru99"))

Παραγωγή:

Welcome to Guru99 tutorials

Παράδειγμα: Το κενό σύμβολο κράτησης θέσης αντικαταστάθηκε με μια αριθμητική τιμή

Στο παρακάτω παράδειγμα, θέλουμε η αριθμητική τιμή να αντικατασταθεί μέσα στην αρχική συμβολοσειρά. Οι αγκύλες ({}) προστίθενται στο μέρος όπου χρειάζεστε την αριθμητική τιμή. Όταν εκτελείται, οι κενές αγκύλες ({}) αντικαθίστανται με την αριθμητική τιμή.

Παράδειγμα:

Μπορείτε επίσης να χρησιμοποιήσετε το format() για να εισαγάγετε αριθμούς μέσα στη συμβολοσειρά σας. Το παράδειγμα θα δείξει πώς να αντικαταστήσετε το κενό Placeholder {} με τον αριθμό 99 που υπάρχει μέσα σε μορφή().

print ("Welcome to Guru{} Tutorials".format("99"))

Παραγωγή:

Welcome to Guru99 Tutorials

Παράδειγμα: Χρήση ορισμάτων μεταβλητών ή λέξεων-κλειδιών μέσα στο Placeholder

Είναι επίσης δυνατό να χρησιμοποιήσετε μεταβλητές μέσα στις αγκύλες, όπως φαίνεται στο παρακάτω παράδειγμα. Οι μεταβλητές ορίζονται μέσα στο format(). Επομένως, όταν εκτελείται, η τιμή που έχει εκχωρηθεί στη μεταβλητή αντικαθίσταται μέσα στην αρχική συμβολοσειρά.

Παράδειγμα:

Μπορείτε να χρησιμοποιήσετε μεταβλητές μέσα σε αγκύλες, για παράδειγμα {name} {num}. Οι τιμές για τις μεταβλητές name και num είναι διαθέσιμες μέσα στο format, δηλαδή format(name=”Guru”, num=”99″). Οι τιμές που δίνονται στα name και num θα αντικατασταθούν μέσα στα {name} και {num}.

print ("Welcome to {name}{num} Tutorials".format(name="Guru", num="99"))

Παραγωγή:

Welcome to Guru99 Tutorials

Παράδειγμα: Χρήση ορισμάτων ευρετηρίου ή θέσης μέσα στο Placeholder

Οι τιμές μπορούν να αντικατασταθούν χρησιμοποιώντας ευρετήρια όπως 0, 1, 2 μέσα στα σύμβολα κράτησης θέσης. Η τιμή θα επιλεγεί κατά σειρά από το format(), όπως φαίνεται στο παρακάτω παράδειγμα.

Παράδειγμα:

print ("Welcome to {0}{1} Tutorials".format("Guru","99"))

Παραγωγή:

Welcome to Guru99 Tutorials

Παράδειγμα: Χρησιμοποιώντας πολλαπλά σύμβολα κράτησης θέσης μέσα σε μια συμβολοσειρά

Σε αυτό το παράδειγμα, πρόκειται να χρησιμοποιήσουμε πολλά κενά σύμβολα κράτησης θέσης.

Παράδειγμα:

Η συμβολοσειρά που χρησιμοποιείται στο παράδειγμα έχει πολλαπλά κενό σύμβολο κράτησης θέσης και κάθε σύμβολο κράτησης θέσης θα αναφέρεται σε μια τιμή inside format() . Η πρώτη τιμή θα αντικατασταθεί για το πρώτο σύμβολο κράτησης θέσης και ούτω καθεξής.

print ("{} is {} new kind of {} experience!".format("Guru99", "totally","learning"))

Παραγωγή:

Guru99 is totally new kind of learning experience!

Μορφοποίηση μέσα στο Placeholders

Έχετε δει ότι είναι δυνατό να έχετε το Placeholder ως κενό, με μια μεταβλητή ή ένα ευρετήριο. Είναι επίσης πιθανό να μπορείτε να κάνετε αίτηση Python Μορφοποίηση συμβολοσειράς μέσα στο Placeholder.

Εδώ είναι η λίστα των μορφών

Μορφή Περιγραφή Παράδειγμα
:d Θα δώσει την έξοδο σε δεκαδική μορφή όταν χρησιμοποιείται μέσα στο σύμβολο κράτησης θέσης print("The binary to decimal value is : {:d}".format(0b0011))

Παραγωγή:

The binary to decimal value is  : 3
:b Θα δώσει την έξοδο σε δυαδική μορφή όταν χρησιμοποιείται μέσα στο σύμβολο κράτησης θέσης print("The binary value is : {:b}".format(500))

Παραγωγή:

The binary value is : 111110100
:e Θα δώσει την έξοδο σε επιστημονική μορφή όταν χρησιμοποιείται μέσα στο σύμβολο κράτησης θέσης, ο εκθέτης e στην έξοδο θα είναι πεζός. print("The scientific value is : {:e}".format(40))

Παραγωγή:

The scientific format value is : 4.000000e+01
:E Θα δώσει την έξοδο σε επιστημονική μορφή όταν χρησιμοποιείται μέσα στο σύμβολο κράτησης θέσης, ο εκθέτης Ε στην έξοδο θα είναι κεφαλαίος print("The scientific value is : {:E}".format(40))

Παραγωγή:

The scientific value is : 4.000000E+01
:f Αυτό θα παράγει μια μορφή αριθμού σταθερού σημείου. Από προεπιλογή, θα λάβετε την έξοδο οποιουδήποτε αριθμού με έξι δεκαδικά ψηφία. Σε περίπτωση που χρειάζεστε έως και 2 δεκαδικά ψηφία, χρησιμοποιήστε το ως. 2f δηλ. μια τελεία (.) μπροστά από το 2f print("The value is : {:f}".format(40))

Παραγωγή:

The value is  : 40.000000

Παράδειγμα: Εμφάνιση εξόδου έως 2 δεκαδικά ψηφία.

print("The value is : {:.2f}".format(40))

Παραγωγή:

The value is: 40.00
:o Αυτό θα παράγει οκταδική μορφή print("The value is : {:o}".format(500))

Παραγωγή:

The value is  : 764
:x Αυτό θα εξάγει εξάγωνη μορφή με πεζά print("The value is : {:x}".format(500))

Παραγωγή:

The value is  : 1f4
:X Αυτό θα δώσει εξαγωγή εξάγωνη μορφή με κεφαλαία. print("The value is : {:X}".format(500))

Παραγωγή:

The value is  : 1F4
:n Αυτό θα δώσει μορφή αριθμού. print("The value is : {:n}".format(500.00))

Παραγωγή:

The value is  : 500
:% Αυτό θα δώσει την έξοδο σε μορφή ποσοστού.
Από προεπιλογή θα δώσει 6 δεκαδικά ψηφία για το ποσοστό εξόδου, σε περίπτωση που δεν θέλετε καμία δεκαδική τιμή μπορείτε να χρησιμοποιήσετε τελεία με 0 δηλαδή (:.0%).
print("The value is : {:%}".format(0.80))

Παραγωγή:

The value is  : 80.000000%

Αυτό το παράδειγμα δείχνει πώς μπορείτε να παραλείψετε τα δεκαδικά ψηφία χρησιμοποιώντας το {:.0%} μέσα στο σύμβολο κράτησης θέσης.

print("The value is : {:.0%}".format(0.80))
Παραγωγή:

The value is: 80%
:_ Αυτό θα δώσει μια υπογράμμιση ως διαχωριστικό χιλίων. Είναι διαθέσιμο από python 3.6+. print("The value is {:_}".format(1000000))

Παραγωγή:

The value is  : 1_000_000
:, Αυτό θα δώσει κόμμα ως διαχωριστικό χιλιάδων print("The value is : {:,}".format(1000000))

Παραγωγή:

The value is  : 1,000,000

Το κόμμα(,) προστίθεται ως διαχωριστικό χιλίων όπως φαίνεται στην έξοδο.

: Αυτό θα προσθέσει ένα κενό πριν από τυχόν θετικούς αριθμούς Αυτό το παράδειγμα δείχνει πώς μπορείτε να προσθέσετε κενό χώρο ή συμπλήρωση πριν από τον συγκεκριμένο αριθμό. Ο αριθμός 5 υποδεικνύει την καταμέτρηση χώρου που θέλετε πριν από τον αριθμό.

print("The value is: {:5}".format(40))

Παραγωγή:

The value is:    40
:- Αυτό θα προσθέσει ένα σύμβολο μείον πριν από τους αρνητικούς αριθμούς Το παράδειγμα δείχνει πώς μπορείτε να λάβετε την έξοδο με το σύμβολο μείον (-) πριν από τον αριθμό χρησιμοποιώντας το {:-}.

print("The value is: {:-}".format(-40))

Παραγωγή:

The value is: -40
:+ Μπορείτε να χρησιμοποιήσετε το σύμβολο συν για να υποδείξετε ότι ο αριθμός είναι θετικός Το παράδειγμα δείχνει πώς μπορείτε να λάβετε την έξοδο με ένα σύμβολο συν (+) πριν από τον αριθμό χρησιμοποιώντας το {:+}.

print("The value is: {:+}".format(40))

Παραγωγή:

The value is: +40
:= Το ίσο με χρησιμοποιείται για να τοποθετήσετε το σύμβολο +/- στην αριστερή πλευρά. Το παράδειγμα δείχνει πώς να λάβετε την έξοδο με ένα σύμβολο συν (+/-) πριν από το ίσο με το σύμβολο χρησιμοποιώντας το {:=}.

print("The value is {:=}".format(-40))

Παραγωγή:

The value is -40
:^ Αυτό θα ευθυγραμμίσει στο κέντρο το τελικό αποτέλεσμα Το παράδειγμα δείχνει ότι χρησιμοποιείται το {:^} για τη στοίχιση στο κέντρο του κειμένου. Ο αριθμός 10 χρησιμοποιείται για την προσθήκη 10 διαστημάτων για να εμφανιστεί η στοίχιση στο κέντρο όταν αντικατασταθεί η τιμή.

print("The value {:^10} is positive value".format(40))

Παραγωγή:

The value     40     is a positive value

Εδώ, μπορείτε να χρησιμοποιήσετε το 10 που θα προσθέσει 10 κενά στο τελικό κείμενο και η τιμή που θα αντικατασταθεί θα στοιχιστεί στο κέντρο μεταξύ των 10 διαστημάτων. Τα κενά των 10 προστίθενται μόνο για να εμφανιστεί η κεντρική στοίχιση της αντικατασταθείσας τιμής.

:> Αυτό θα ευθυγραμμίσει δεξιά το τελικό αποτέλεσμα Το διάστημα 10 προστίθεται χρησιμοποιώντας (:>10) και η τιμή που αντικαταστάθηκε είναι στοιχισμένη δεξιά.

print("The value {:>10} is positive value".format(40))

Παραγωγή:

The value         40 is positive value
:< Αυτό θα αφήσει ευθυγραμμισμένο το τελικό αποτέλεσμα Το διάστημα των 10 προστίθεται χρησιμοποιώντας το (:<10) και η τιμή αντικαθιστά αριστερά ευθυγραμμισμένη.

print("The value {:<10} is positive value".format(40))

Παραγωγή:

The value 40         is positive value

Χρήση τάξης με format()

Σε αυτό το παράδειγμα, δημιουργούμε μια κλάση και χρησιμοποιούμε το αντικείμενο της κλάσης μέσα στο .format Python μέθοδος. Τα σύμβολα κράτησης θέσης θα αναφέρονται σε ιδιότητες κλάσης ή μέλη που χρησιμοποιούν το αντικείμενο κλάσης.

Παράδειγμα:

Η κλάση καλείται μέσα στο format(c=MyClass()). Το αντικείμενο c θα έχει την αναφορά στις ιδιότητες και τις μεθόδους μέσα στην κλάση MyClass().

class MyClass:
    msg1="Guru"
    msg2="Tutorials"   

print("Welcome to {c.msg1}99 {c.msg2}!".format(c=MyClass()))

Παραγωγή:

Welcome to Guru99 Tutorials!

Χρήση λεξικού με format()

Είναι επίσης δυνατό να χρησιμοποιήσετε το λεξικό μέσα σε μορφή () όπως φαίνεται στο παρακάτω παράδειγμα:

my_dict = {'msg1': "Welcome", 'msg2': 'Guru99'}
print("{m[msg1]} to {m[msg2]} Tutorials!".format(m=my_dict))

Παραγωγή:

Welcome to Guru99 Tutorials!

Αντικαταστάσεις μεταβλητής επένδυσης

Χρησιμοποιώντας τη μέθοδο string.format(), μπορείτε να προσθέσετε padding, διάστημα χρησιμοποιώντας σύμβολα θέσης μέσα στη συμβολοσειρά σας.

Παράδειγμα:

Στο παρακάτω παράδειγμα θα προσθέσει χώρο μέσα στο Placeholder χρησιμοποιώντας τη μορφή(). Για να προσθέσετε χώρο, πρέπει να καθορίσετε τον αριθμό των κενών εντός των αγκύλων μετά την άνω και κάτω τελεία(:). Έτσι, το Placeholder θα μοιάζει με {:5}.

print("I have {:5} dogs and {:5} cat".format(2,1))

Παραγωγή:

I have     2 dogs and     1 cat

Μπορείτε επίσης να δώσετε το ευρετήριο μέσα στο σύμβολο κράτησης θέσης, για παράδειγμα: {0:5} όπου το 0 θα αναφέρεται στην πρώτη τιμή εντός της μορφής.

print("I have {0:5} dogs and {1:5} cat".format(2,1))

Παραγωγή:

I have     2 dogs and     1 cat

Συχνές Ερωτήσεις

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

Ο τελεστής % χρησιμοποιεί σύμβολα τύπου printf όπως %s και %d, ενώ η format() χρησιμοποιεί placeholders με αγκύλες που υποστηρίζουν ονόματα, ευρετήρια και πλουσιότερους προσδιοριστές. Ο καθαρότερος χειρισμός της αναδιάταξης και της διάταξης είναι ο λόγος για τον οποίο η format() αντικατέστησε την % στον σύγχρονο κώδικα.

Double τα σιδεράκια για να ξεφύγω από αυτά. Τάιping Δύο αρχικές αγκύλες εκτυπώνουν μία αγκύλη κυριολεκτικής σημασίας και δύο αγκύλες κλεισίματος εκτυπώνουν μία αγκύλη κλεισίματος, επομένως ένα πραγματικό σύμβολο κράτησης θέσης εξακολουθεί να λειτουργεί παράλληλα με τις αγκύλες κυριολεκτικής σημασίας μέσα στην ίδια συμβολοσειρά προτύπου.

Μια τιμή θέσης που λείπει προκαλεί το σφάλμα IndexError, ενώ μια λέξη-κλειδί ή όνομα λεξικού που λείπει προκαλεί το σφάλμα KeyError. Επιτρέπεται η μεταβίβαση περισσότερων τιμών από τα placeholders και απλώς αγνοούνται τα επιπλέον, επομένως μόνο οι αναφορές που απουσιάζουν και όχι οι πλεονάζουσες, προκαλούν σφάλμα.

Η μέθοδος format() λειτουργεί σε Python 2.6 και κάθε Python 3 έκδοση. Η αυτόματη αρίθμηση πεδίων, όπου οι αγκύλες παραμένουν κενές αντί να γράφουν {0} {1}, χρειάζεται Python 2.7 ή 3.1 και νεότερες εκδόσεις.

Όχι. Python Οι συμβολοσειρές είναι αμετάβλητες, επομένως η συνάρτηση format() δημιουργεί και επιστρέφει μια ολοκαίνουργια συμβολοσειρά αφήνοντας το πρότυπο αμετάβλητο. Αντιστοιχίστε το αποτέλεσμα σε μια μεταβλητή, για παράδειγμα message = template.format(value), για να διατηρήσετε το μορφοποιημένο κείμενο για μελλοντική χρήση.

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

Ναι. Το GitHub Copilot συμπληρώνει αυτόματα τις κλήσεις format() και τους προσδιοριστές τους από ένα σύντομο σχόλιο που περιγράφει την έξοδο που θέλετε. Οι βοηθοί της τεχνητής νοημοσύνης των πρακτόρων προχωρούν ένα βήμα παραπέρα, μετατρέποντας τη format() σε f-strings, διορθώνοντας την ευθυγράμμιση και εκτελώντας αυτόματα τις δοκιμές σας.

Συνοψίστε αυτήν την ανάρτηση με: