Sobes.tech
Middle

Πώς είναι δομημένες οι μεταβλητές στην Python;

sobes.tech AI

Απάντηση από AI

Οι μεταβλητές στην Python δεν είναι δοχεία δεδομένων, αλλά μάλλον ετικέτες ή ονόματα που αναφέρονται σε αντικείμενα στη μνήμη.

Όταν αναθέτετε μια τιμή σε μια μεταβλητή, δεν αντιγράφετε αυτήν την τιμή, αλλά δημιουργείτε μια αναφορά σε ένα υπάρχον ή δημιουργούμενο αντικείμενο.

Βασικές έννοιες:

  • Ονόματα μεταβλητών: Μπορούν να περιέχουν γράμματα (λατινικά), ψηφία και κάτω παύλα. Δεν μπορούν να ξεκινούν με ψηφίο. Είναι ευαίσθητα σε πεζά-κεφαλαία.
  • Αντικείμενα: Όλα στην Python είναι αντικείμενα. Κάθε αντικείμενο έχει έναν τύπο, μια τιμή και έναν αναγνωριστικό (διεύθυνση στη μνήμη).
  • Αναφορές: Η μεταβλητή αποθηκεύει μια αναφορά στον αναγνωριστικό του αντικειμένου.

Παράδειγμα:

# Δημιουργούμε ένα αντικείμενο int με τιμή 100 και αναθέτουμε τον αναγνωριστικό του στο 'a'
a = 100 
# Η μεταβλητή 'b' τώρα αναφέρεται στο ίδιο αντικείμενο int με τιμή 100
b = a
# Δημιουργούμε ένα νέο αντικείμενο int με τιμή 200 και αναθέτουμε τον αναγνωριστικό του στο 'a'
a = 200 

Σε αυτό το παράδειγμα, μετά το a = 200, η μεταβλητή a αναφέρεται στο νέο αντικείμενο 200, ενώ η μεταβλητή b εξακολουθεί να αναφέρεται στο αντικείμενο 100.

  • Δυναμικός τύπος: Ο τύπος της μεταβλητής καθορίζεται από τον τύπο του αντικειμένου στο οποίο αναφέρεται, και μπορεί να αλλάξει κατά την εκτέλεση του προγράμματος.
# Η μεταβλητή 'x' αναφέρεται σε ένα αντικείμενο int
x = 10 
# Τώρα η μεταβλητή 'x' αναφέρεται σε ένα αντικείμενο str
x = "hello" 
  • Συλλογή απορριμμάτων: Όταν δεν υπάρχουν πλέον αναφορές σε ένα αντικείμενο, η Python ελευθερώνει αυτόματα τη μνήμη που καταλαμβάνει μέσω του μηχανισμού συλλογής απορριμμάτων.

  • Αμετάβλητα (immutable) vs. μεταβλητά (mutable) αντικείμενα:

    • Αμετάβλητα: Αριθμοί, συμβολοσειρές, πλειάδες. Η προσπάθεια "αλλαγής" ενός τέτοιου αντικειμένου, δημιουργεί στην πραγματικότητα ένα νέο αντικείμενο.
    • Μεταβλητά: Λίστες, λεξικά, σύνολα. Το περιεχόμενό τους μπορεί να αλλάξει χωρίς να δημιουργηθεί νέο αντικείμενο.
# Αμετάβλητο αντικείμενο str
s = "world"
# Δημιουργείται ένα νέο αντικείμενο str "hello world", το 's' αναφέρεται σε αυτό
s = "hello " + s

# Μεταβλητό αντικείμενο list
l = [1, 2, 3]
# Το περιεχόμενο του υπάρχοντος αντικειμένου list αλλάζει
l.append(4) 

Έτσι, οι μεταβλητές στην Python είναι ευέλικτα και ισχυρά εργαλεία για την εργασία με δεδομένα, βασισμένα στην έννοια των αναφορών σε αντικείμενα.