Μορφή Python ()

Η ενσωματωμένη μέθοδος () επιστρέφει μια μορφοποιημένη αναπαράσταση της δεδομένης τιμής που ελέγχεται από τον προσδιοριστή μορφής.

Η format()συνάρτηση είναι παρόμοια με τη μέθοδο μορφής String. Εσωτερικά, και οι δύο μέθοδοι καλούν τη __format__()μέθοδο ενός αντικειμένου.

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

Η σύνταξη της μορφής () είναι:

 μορφή (τιμή (, format_spec))

μορφή () Παράμετροι

Η format()συνάρτηση παίρνει δύο παραμέτρους:

  • τιμή - τιμή που πρέπει να μορφοποιηθεί
  • format_spec - Η προδιαγραφή για το πώς θα πρέπει να μορφοποιηθεί η τιμή.

Ο προσδιοριστής μορφής θα μπορούσε να έχει τη μορφή:

((fill) align) (σύμβολο) (#) (0) (πλάτος) (,) (. ακρίβεια) (τύπος) όπου, οι επιλογές είναι πλήρωση :: = οποιοσδήποτε χαρακτήρας ευθυγράμμιση :: = "" | "=" | "^" σημάδι :: = "+" | "-" | πλάτος :: = ακέραιος ακρίβεια :: = ακέραιος τύπος :: = "b" | "γ" | "δ" | "ε" | "Ε" | "στ" | "F" | "g" | "Ζ" | "ν" | "o" | "s" | "x" | "Χ" | "%"

Επισκεφτείτε αυτούς τους συνδέσμους για να μάθετε περισσότερα σχετικά με τους τύπους μορφής και την ευθυγράμμιση.

Επιστροφή τιμής από τη μορφή ()

Η format()συνάρτηση επιστρέφει μια μορφοποιημένη αναπαράσταση μιας δεδομένης τιμής που καθορίζεται από τον προσδιοριστή μορφής.

Παράδειγμα 1: Μορφοποίηση αριθμών με μορφή ()

 # d, f and b are type # integer print(format(123, "d")) # float arguments print(format(123.4567898, "f")) # binary format print(format(12, "b"))

Παραγωγή

 123 123.456790 1100

Παράδειγμα 2: Μορφοποίηση αριθμών με πλήρωση, ευθυγράμμιση, σύμβολο, πλάτος, ακρίβεια και τύπο

 # integer print(format(1234, "*>+7,d")) # float number print(format(123.4567, "^-09.3f"))

Παραγωγή

 * + 1,234 0123,4570

Εδώ, κατά τη μορφοποίηση του ακέραιου 1234, καθορίσαμε τον προσδιοριστή μορφοποίησης *>+7,d. Ας καταλάβουμε κάθε επιλογή:

  • * - Είναι ο χαρακτήρας γεμίσματος που γεμίζει τους κενούς χώρους μετά τη μορφοποίηση
  • > - Είναι η επιλογή σωστής ευθυγράμμισης που ευθυγραμμίζει τη συμβολοσειρά εξόδου προς τα δεξιά
  • + - Είναι η επιλογή πινακίδας που αναγκάζει τον αριθμό που πρέπει να υπογραφεί (έχοντας ένα σημάδι στα αριστερά του)
  • 7 - Είναι η επιλογή πλάτους που αναγκάζει τον αριθμό να πάρει ένα ελάχιστο πλάτος 7, ενώ άλλα κενά θα συμπληρωθούν με χαρακτήρα πλήρωσης
  • , - Είναι ο χειριστής χιλιάδων που θέτει κόμμα μεταξύ όλων των χιλιάδων.
  • d - Είναι η επιλογή τύπου που καθορίζει ότι ο αριθμός είναι ακέραιος.

Κατά τη μορφοποίηση του αριθμού κινητής υποδιαστολής 123.4567, καθορίσαμε τον προσδιοριστή μορφής ^-09.3f. Αυτά είναι:

  • ^ - Είναι η επιλογή κεντρικής ευθυγράμμισης που ευθυγραμμίζει τη συμβολοσειρά εξόδου με το κέντρο του υπόλοιπου χώρου
  • - - Είναι η επιλογή σήματος που αναγκάζει μόνο αρνητικούς αριθμούς να εμφανίζουν το σύμβολο
  • 0 - Είναι ο χαρακτήρας που τοποθετείται στη θέση των κενών χώρων.
  • 9 - Είναι η επιλογή πλάτους που ορίζει το ελάχιστο πλάτος του αριθμού σε 9 (συμπεριλαμβανομένου του δεκαδικού σημείου, χιλιάδων κόμμα και σημείου)
  • .3 - Είναι ο τελεστής ακριβείας που ορίζει την ακρίβεια του δεδομένου κινούμενου αριθμού σε 3 θέσεις
  • f - Είναι η επιλογή τύπου που καθορίζει τον αριθμό είναι float.

Παράδειγμα 3: Χρήση μορφής () με παράκαμψη __format __ ()

 # custom __format__() method class Person: def __format__(self, format): if(format == 'age'): return '23' return 'None' print(format(Person(), "age"))

Παραγωγή

 23

Εδώ, έχουμε παρακάμψει τη __format__()μέθοδο της τάξης Person.

Δέχεται τώρα μια formatπαράμετρο και επιστρέφει 23 εάν είναι ίση με 'age'. Εάν δεν έχει καθοριστεί μορφή, Noneεπιστρέφεται.

Η format()συνάρτηση εκτελείται εσωτερικά Person().__format__("age")για την επιστροφή 23.

ενδιαφέροντα άρθρα...