Python

ΕΝΟΤΗΤΑ 7 - Formatting Numbers

image description

Αν και ασχοληθήκαμε στην προηγούμενη ενότητα με το πως να οργανώνουμε λίγο καλύτερα το output από τα print functions,  δεν καλύψαμε για το πως να δίνουμε μια καλύτερη μορφή αποτελέσματος σε αριθμούς που προέρχονται από αριθμητικές πράξεις. Στο σημερινό δωρεάν μάθημα Python θα δούμε όλους τους απλούς τρόπους με τους οποίους μπορούμε να δώσουμε μια καλύτερη τελική μορφή σε αριθμούς.

Ας τρέξουμε όμως ένα απλό παράδειγμα για να δούμε το πρόβλημα που θα αντιμετωπίσουμε εάν δεν εφαρμόσουμε κάποια μορφοποίηση στο αποτέλεσμα.

App.py


amount_due = 1000.00
montly_payment = amount_due / 12.0
print("The montly payment is", montly_payment)
 

Output


The montly payment is 83.33333333333333
   

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

  • Τον αριθμό που θέλουμε να μορφοποιήσουμε
  • Τα επιθυμητά ψηφία που θέλουμε να εμφανίζονται

Ας δούμε πως θα αλλάζαμε τον κώδικα στο παράδειγμα μας

Ο αριθμός .2 ορίζει τον αριθμό των ψηφίων, ενώ το  f  ορίζει πως θα μορφοποιήσουμε ένα float αριθμό. Μπορείτε να δοκιμάσετε και να αλλάξετε τον αριθμό από 2 σε 1 ή σε 3 και να δείτε το αποτέλεσμα.

Αν θέλουμε τώρα να προσθέσουμε και κόμμα στις χιλιάδες, τότε επίσης μπορούμε να το ορίσουμε μέσα από την format( ) function .

App.py


amount_due = 123456789.456
print("The montly payment is", format(amount_due, ',.2f'))
   

Output


The montly payment is 123,456,789.46
   

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

App.py


monthly_pay = 2500.0
annual_pay = monthly_pay * 12
print('Your annual_pay is \u20AC', format(annual_pay, ',.2f'), sep='')
   

Output


Your annual_pay is €30,000.00
   

Παρατηρήστε ότι έχουμε προσθέσει στο τέλος του print το sep=’’ έτσι ώστε να μην υπάρχει κενό ανάμεσα στο σύμβολο του δολαρίου και τον αριθμό.

Μπορούμε επίσης αντί για f να χρησιμοποιήσουμε το σύμβολο % έτσι ώστε να διαμορφώσετε έναν αριθμό ως ποσοστό.

App.py


print(format(0.5, '.0%'))
   

Output


50%
   

Τέλος, υπάρχει και η  d επιλογή με την οποία ενημερώνουμε την format function ότι αντί για float θα χρησιμοποιήσουμε integer αριθμούς. Στους ακέραιους αριθμούς αυτή είναι η μόνη επιλογή που υπάρχει.

App.py


print(format(123456, ',d'))
      

Output


123,456
   

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

INTEREST_RATE = 0.0050

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

ΕΙΣΗΓΗΤΗΣ

Merry Jhonson

Μιχάλης Κασάπογλου

Ο Μιχάλης Κασάπογλου, είναι ένας από τους πιο έμπειρους τεχνικούς εκπαιδευτές στον χώρο του προγραμματισμού με πάνω από 20 χρόνια εμπειρία. Έχει εργαστεί σαν IT Operations Manager, Senior Programmer, και Training Team Leader ενώ κατέχει και αρκετές πιστοποιήσεις που καλύπτουν ένα μεγάλο φάσμα τεχνολογιών στο προγραμματισμό, σε βάσεις δεδομένων και cloud. Στον ελεύθερο του χρόνο διατηρεί ένα τεχνολογικό blog στο οποίο θα βρείτε αρκετά δωρεάν μαθήματα προγραμματισμού για αρχάριους.

loader