Μεταβλητές

Η γλώσσα Python παρέχει εντυπωσιακές εναλλακτικές δυνατότητες για τη διαχείριση μεταβλητών που διευκολύνουν τον προγραμματιστή. Για τη χρησιμοποίηση μιας μεταβλητής δεν απαιτείται η δήλωσή της, ενώ μπορεί να εκχωρήσουμε διαφορετικούς τύπους τιμών σε μια μεταβλητή κατά τη διάρκεια ενός προγράμματος, όπως ακέραιες τιμές, κινητής υποδιαστολής και συμβολοσειρές.
Για να χρησιμοποιήσουμε μια μεταβλητή απαιτείται να της δώσουμε ένα όνομα και στη συνέχεια να της εκχωρήσουμε κάποια τιμή. Στη γλώσσα Python υπάρχουν ορισμένοι κανόνες που πρέπει να ακολουθούμε σχετικά με το όνομα μιας μεταβλητής. Έτσι, για παράδειγμα, δεν επιτρέπεται να ξεκινά το όνομα μιας μεταβλητής με αριθμό και το όνομα που θα δώσουμε δεν πρέπει να είναι όμοιο με
κάποιο όνομα ενσωματωμένης συνάρτησης ή εντολής. Συνηθίζουμε να δίνουμε ένα όνομα σχετικό με το είδος της μεταβλητής με λατινικούς χαρακτήρες, που μπορεί να συνοδεύεται από κάποιον αριθμό, όπως για παράδειγμα: onoma1,
onoma_2, timi, mesi_timi, embado κ.ά.

Για να εκχωρήσουμε μια τιμή σε μια μεταβλητή, χρησιμοποιούμε τον τελεστή ίσον " = ", όπως για παράδειγμα a = 125.

Στο αριστερό μέρος δίνουμε το όνομα της μεταβλητής, στη συνέχεια χρησιμοποιούμε τον τελεστή εκχώρησης “=” και στο δεξιό μέρος βάζουμε την τιμή, μια άλλη μεταβλητή ή μια έκφραση που έχει ως αποτέλεσμα μια τιμή.

Προσοχή! ο τελεστής “=” δεν έχει τη σημασία που έχει το σύμβολο της ισότητας, όπως το χρησιμοποιούμε στα μαθηματικά. Στις περισσότερες γλώσσες προγραμματισμού, ο τελεστής εκχώρησης τιμής " = " σημαίνει ότι εκχωρούμε στη μεταβλητή μια τιμή ενός τύπου δεδομένου και ταυτόχρονα την εισάγουμε στη θέση μνήμης που αντιστοιχεί στη μεταβλητή με αυτό το όνομα. Για παράδειγμα, η εντολή a = 125 σημαίνει ότι η μεταβλητή με όνομα a αντιστοιχεί σε μια θέση μνήμης του υπολογιστή και η ακέραια τιμή 125 εισάγεται στη θέση αυτή. Αν στη συνέχεια θέσουμε a = 250, στη θέση μνήμης που αναφέρεται η μεταβλητή a εισάγεται η νέα ακέραια τιμή 250 και η παλαιά τιμή 125 παύει πλέον να υπάρχει, αφού έχει αντικατασταθεί από τη 250.

Όλα τα δεδομένα σε ένα πρόγραμμα Python αναπαρίστανται με αντικείμενα ή με σχέσεις μεταξύ των αντικειμένων, με κάθε αντικείμενο να έχει μια ταυτότητα(identity), έναν τύπο και μία τιμή. Για παράδειγμα, το 12 είναι ένα αντικείμενο με τιμή 12, τύπου int (ακέραιος).

Οι μεταβλητές στην Python λειτουργούν σαν ετικέτες με κάποιο όνομα, που χρησιμεύουν για να αναφερόμαστε (ή αλλιώς για να δείχνουμε) σε κάποια αντικείμενα. Ο τύπος της μεταβλητής είναι ο εκάστοτε τύπος του αντικειμένου στην οποία αναφέρεται. Στο παράδειγμα a = 125, δημιουργείται η μεταβλητή με όνομα a και αναφέρεται στο αντικείμενο, με τιμή 125, με ακέραιο τύπο δεδομένων. Το σύμβολο "=" δημιουργεί ένα είδος δεσίματος μεταξύ του αντικειμένου 125 και της μεταβλητής με όνομα a. Ο τύπος της μεταβλητής είναι και αυτός ακέραιος, αφού αναφέρεται σε αντικείμενο με ακέραιο τύπο δεδομένων.

Όταν θέσουμε στη συνέχεια a = 250.0, η μεταβλητή a παύει πλέον να δείχνει το αντικείμενο με τιμή 125 και δημιουργείται ένα νέο “δέσιμο”, ώστε να αναφέρεται στο αντικείμενο με τιμή 250.0 (κινητής υποδιαστολής τύπος δεδομένων). Ο τύπος δεδομένων της μεταβλητής a τώρα έχει αλλάξει και είναι κινητής υποδιαστολής, όμοιος με τον τύπο του νέου αντικειμένου στο οποίο αναφέρεται.

Η Python παρακολουθεί όλες τις τιμές και τις διαγράφει όταν πάψουν να υπάρχουν μεταβλητές που να αναφέρονται σε αυτές. Η διαδικασία αυτή ονομάζεται συλλογή σκουπιδιών (garbage collection). Στο παράδειγμα που ακολουθεί η μεταβλητή a παίρνει ως τιμή διαδοχικά ένα ακέραιο, ένα πραγματικό, μια λογική τιμή και τέλος μια συμβολοσειρά. Κάθε φορά ελέγχεται ο τύπος δεδομένων με την εντολή type.

>> a = 125
>>> type( a )
<type ‘int’>
>>> a = 250.7
>>> type( a )
<type ‘float’>
>>> a = True
>>> type( a )
<type ‘bool’>
>>> a =' Καλημέρα')
>>> type( a )
<type ‘str’>

Αν θέλουμε να εμφανίσουμε το περιεχόμενο της μεταβλητής, τότε μπορούμε να χρησιμοποιήσουμε την εντολή print μαζί με το όνομα της μεταβλητής. Για παράδειγμα: message= ‘Καλημέρα’, η εντολή print message θα εμφανίσει στην οθόνη τη λέξη Καλημέρα. Στο όνομα της μεταβλητής message, που ακολουθεί μετά την print, δεν πρέπει να χρησιμοποιηθούν εισαγωγικά (μονά ή διπλά), διότι τότε θα εμφανιστεί στην οθόνη η συμβολοσειρά message. Παρόμοια, αν θέσουμε a = 1234, η print a θα εμφανίσει την τιμή 1234 στην οθόνη.

Leave a Reply