PYTHON ΜΑΘΗΜΑ 9 – Formatting Numbers

 

Δωρεάν Μαθήματα Python


INTRODUCTION

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

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

FLOATING NUMBER OUTPUT PROBLEM

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

app.py

amount_due = 1000.00
monthly_payment = amount_due / 12.0
print("The monthly payment is", monthly_payment)

Output


Αποτέλεσμα εκτέλεσης κώδικα Python

Format( ) function

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

1.         Τον αριθμό που θέλουμε να μορφοποιήσουμε

2.         Τα επιθυμητά ψηφία που θέλουμε να εμφανίσουμε

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

app.py

amount_due = 1000.00
monthly_payment = amount_due / 12.0
print("The monthly payment is", format(monthly_payment, ',.2f'))

Output


Αποτέλεσμα εκτέλεσης κώδικα Python

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

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

app.py

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

Output

Αποτέλεσμα εκτέλεσης κώδικα Python

Αν τώρα θέλουμε να συνδυάσουμε όλα όσα μάθαμε στο προηγούμενο και στο σημερινό δωρεάν μάθημα Python τότε θα μπορούσαμε να γράψουμε τον εξής κώδικα:

app.py

monthly_pay = 2500.00
annual_pay = monthly_pay * 12
print("Your annual pay is \u20AC", format(annual_pay, ',.2f'), sep='')

Output


Αποτέλεσμα εκτέλεσης κώδικα Python

Παρατηρήστε ότι έχουμε προσθέσει στο τέλος του print( ) function το argument sep= ‘ ‘ έτσι ώστε το σύμβολο του ευρώ να κολλήσει στον αριθμό.

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

app.py

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

Output


Αποτέλεσμα εκτέλεσης κώδικα Python

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

app.py

print(format(12345, ',d'))

Output


Αποτέλεσμα εκτέλεσης κώδικα Python

Μην ξεχάσετε να κάνετε ένα μικρό donation έτσι ώστε αυτό το site να μεγαλώσει ακόμα πιο πολύ και να αποκτήσει περισσότερες δυνατότητες online παράδοσης δωρεάν μαθημάτων.

full-width

Post a Comment

0 Comments