INTRODUCTION
Η Python, όπως κάθε μοντέρνα γλώσσα προγραμματισμού, διαθέτει τελεστές (operators) με τους οποίους μπορούμε να εκτελούμε βασικές αριθμητικές πράξεις.
Στο σημερινό δωρεάν μάθημα Python θα εξηγήσουμε με
παραδείγματα πως χρησιμοποιούμε τους τελεστές και ποιες είναι κάποιες βασικές
διαφορές που υπάρχουν μεταξύ τους. Επίσης θα δούμε πως μπορούμε να επηρεάσουμε την
σειρά εκτέλεσης των πράξεων με την χρήση των παρενθέσεων.
BASIC CALCULATIONS
Ο κύριος σκοπός ενός προγράμματος, τις περισσότερες
φορές, είναι να εκτελεί μία ή περισσότερες αριθμητικές πράξεις και να μας επιστρέφει
πίσω κάποιο αποτέλεσμα. Για αυτό το σκοπό η Python έχει δημιουργήσει τους math operators τους
οποίους χρησιμοποιούμε για να εκτελέσουμε όλες τις γνωστές αλγεβρικές πράξεις όπως
πολλαπλασιασμό, διαίρεση, κτλ.
Πριν προχωρήσουμε όμως σε ένα πρακτικό παράδειγμα ας δούμε
συνοπτικά ποια είναι τα math operators που έχουμε στην διάθεση μας μέσα από την Python.
Τώρα που κάπως εξοικειωθήκαμε με τα σύμβολα, ας δούμε και
πως χρησιμοποιούνται μέσα στην Python. Το παρακάτω πρόγραμμα δεν κάνει τίποτα άλλο από το να
εκτελεί σε κάθε γραμμή έναν διαφορετικό math operator.
app.py
Output
Θα έχετε ήδη προσέξει ότι η Python διαθέτει δύο διαφορετικά
σύμβολα για την διαίρεση – το / και το //. Το αποτέλεσμα της διαίρεσης
όταν χρησιμοποιείτε το / περιέχει ολόκληρο τον αριθμό οπότε η διαίρεση 5 / 2 θα
μας επιστρέψει το 2.5. Αν όμως χρησιμοποιήσετε το // τότε το αποτέλεσμα σας θα
περιέχει μόνο τον ακέραιο αριθμό δηλαδή τον αριθμό 2.
Ας δούμε όμως ένα πιο πρακτικό παράδειγμα μέσα στα πλαίσια
της απλή θεωρίας που έχουμε καλύψει μέχρι τώρα. Στο παρακάτω πρόγραμμα θα
κάνετε reservation ένα
αεροπορικό εισιτήριο. Επειδή όμως κάνετε την κράτηση αρκετά νωρίς, τότε θα
πάρετε μια έκπτωση 20%. Το πρόγραμμα στο τέλος θα σας δείξει την τελική τιμή
του εισιτηρίου.
app.py
Output
OPERATOR PRECEDENCE
Πολλές φορές το τελικό αποτέλεσμα εξαρτάται από πολλαπλές
αριθμητικές πράξεις και όχι μόνο από μια. Αν λοιπόν συνδυάσουμε για παράδειγμα
πολλαπλασιασμό, διαίρεση και πρόσθεση σίγουρα θα αναρωτιέστε με σειρά θα εκτελεστούν
οι παραπάνω πράξεις?
Σε αυτό το σημείο λοιπόν η Python έχει ορίσει μια απλή σειρά
προτεραιότητας εκτέλεσης των math operators. Αυτή η
σειρά προτεραιότητας ονομάζεται operator precedence και έχει τους εξής απλούς
κανόνες:
1. Πρώτα θα εκτελεστούν οι exponentiation operators ( ** )
2. Μετά ακολουθούν multiplication, division και remainder ( *, /, //, %)
3. Και τέλος θα εκτελεστούν οι addition και
subtraction operators (
+, -)
Αν υπάρχουν ταυτόχρονα στην ίδια αριθμητική πράξη operators που
έχουν την ίδια σειρά προτεραιότητας, π.χ πολλαπλασιασμός και διαίρεση, τότε η εκτέλεση
θα γίνει από τα αριστερά προς τα δεξιά όπως είναι και ο κανόνας της άλγεβρας.
app.py
Output
Αν αυτή η προκαθορισμένη σειρά εκτέλεσης των operators σας μπερδεύει, τότε μπορείτε να χρησιμοποιήσετε παρενθέσεις και να ελέγξετε την σειρά εκτέλεσης των πράξεων. Η πράξη που βρίσκεται μέσα στην παρένθεση θα εκτελεστεί πρώτη ανεξάρτητα από την σειρά προτεραιότητας των operators.
app.py
Output
Ένας από τους operator που υπάρχει στον πίνακα που
παρουσιάσαμε στην αρχή του σημερινού μαθήματος Python είναι ο remainder ( % ). Ο
συγκεκριμένος operator επιστρέφει
το υπόλοιπο της διαίρεσης αλλά πόσο χρήσιμο μπορεί να είναι αυτό σε ένα
πρόγραμμα? Τον συγκεκριμένο operator θα τον συναντήσουμε πολύ συχνά όταν
θέλουμε να κάνουμε κάποιο είδος μετατροπής σε χρόνο η απόσταση ή να ελέγξουμε εάν
ένας αριθμός είναι μονός ή ζυγός. Στο παρακάτω παράδειγμα ζητάμε να βρούμε
πόσες ώρες, λεπτά και δευτερόλεπτα αντιστοιχούν σε έναν μεγάλο αριθμό δευτερολέπτων.
app.py
Output
Όταν εκτελούμε πράξεις με την Python υπάρχουν κάποιες
αυτόματες μετατροπές που γίνονται από την ίδια την Python για τις οποίες θα
πρέπει να είμαστε ενημερωμένοι. Υπάρχουν βασικά τρεις απλοί κανόνες που
ακολουθεί η Python κάθε
φορά που εκτελεί μια αριθμητική πράξη. Οι κανόνες είναι οι εξής:
1. Όταν μια αριθμητική πράξη εκτελείται ανάμεσα σε δύο int τιμές, τότε το
αποτέλεσμα θα είναι είδος int.
2. Όταν μια αριθμητική πράξη εκτελείται ανάμεσα σε δύο float, τότε το
αποτέλεσμα θα είναι είδος float.
3. Όταν μια αριθμητική πράξη εκτελείται ανάμεσα σε έναν int και ένα float αριθμό, τότε ο int αριθμός
μετατρέπεται αυτόματα σε float και το αποτέλεσμα θα είναι float.
Νομίζω ότι οι δύο πρώτοι κανόνες είναι εύκολοι στην
κατανόησή τους. Για τον τρίτο κανόνα ας θεωρήσουμε το εξής παράδειγμα:
my_result = 3 * 4.0
Όταν η συγκεκριμένη πράξη εκτελείται, η τιμή του 3 θα
μετατραπεί σε float, δηλαδή
3.0, και το αποτέλεσμα του πολλαπλασιασμού με το 2.0 θα μας επιστρέψει την
τελική τιμή 12.0 που είναι float.
Αν τώρα θέλουμε να εφαρμόσουμε εμείς την μετατροπή έτσι
ώστε να έχουμε τον απόλυτο έλεγχο τότε μπορούμε απλά να χρησιμοποιήσουμε τις function int( ) και float( ). Αυτή την
διαδικασία την έχουμε ήδη δει και εφαρμόσει όταν ζητούσαμε από τον χρήστη να εισάγει
έναν αριθμό στο πρόγραμμα μας.
app.py
Output
Αν η αριθμητική πράξη που θέλετε να εκτελέσετε έχε
πολλούς αριθμούς και θέλετε να την χωρίσετε σε 2 ή και περισσότερες γραμμές για
να χωράει στην οθόνη σας, τότε μπορείτε να χρησιμοποιήσετε το backslash ( \ ) όπως δείχνει
το παρακάτω παράδειγμα.
app.py
Επίσης θα μπορούσατε να αποφύγετε την χρήση του backslash, αν η αριθμητική πράξη βρίσκεται εξ ολοκλήρου μέσα στην print( ) function.
app.py



0 Comments
What do you think about Ground of Code?