PYTHON ΜΑΘΗΜΑ 3 – ΜΕΤΑΒΛΗΤΕΣ (Variables) & ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

 

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

ΕΙΣΑΓΩΓΗ

Στο σημερινό δωρεάν μάθημα Python, θα μάθουμε τα πάντα για το "Αλφαβητάριο" του προγραμματισμού:

  • Τι είναι τα Variables και πώς λειτουργούν στη μνήμη.
  • Πώς ορίζονται (δηλώνονται) μέσα στον κώδικά μας.
  • Τους Κανόνες Ονοματολογίας: Τι επιτρέπεται και τι απαγορεύεται.
  • Την Πράξη: Πώς συνδυάζουμε μεταβλητές με την εντολή print() για να δούμε αποτελέσματα στην οθόνη. 

Η ΜΝΗΜΗ ΚΑΙ ΤΟ ΚΑΛΑΘΙ ΑΓΟΡΩΝ

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

Αυτή τη διαδικασία, αν και αόρατη στον χρήστη, την επαναλαμβάνετε κάθε φορά που ψωνίζετε σε ένα e-shop

Προσθήκη στο Καλάθι: Όταν πατάτε "Προσθήκη στο καλάθι", τα δεδομένα του προϊόντος (τιμή, όνομα, τεμάχια) αποθηκεύονται προσωρινά στη μνήμη του server όπου τρέχει το e-shop.

Το Ταμείο: Όταν πατάτε "Ολοκλήρωση Αγοράς", ο κώδικας του e-shop τρέχει αστραπιαία, ανασύρει αυτά τα δεδομένα από τη μνήμη, υπολογίζει το σύνολο και το ΦΠΑ, και αποθηκεύει εκ νέου το τελικό ποσό πληρωμής.

Για να μπορέσει η Python (ή οποιαδήποτε άλλη γλώσσα) να κάνει αυτή τη δουλειά —δηλαδή να δεσμεύσει χώρο στη μνήμη και να αποθηκεύσει δεδομένα— χρησιμοποιεί τα λεγόμενα Variables (Μεταβλητές)

ΤΙ ΕΙΝΑΙ VARIABLE KAI ΠΩΣ ΛΕΙΤΟΥΡΓΕΙ ΣΤΗ ΜΝΗΜΗ

Πριν γράψουμε κώδικα, ας δώσουμε έναν απλό ορισμό.

Μια μεταβλητή (variable) είναι ένα όνομα που ορίζουμε εμείς στον κώδικά μας, το οποίο λειτουργεί σαν "ετικέτα" για μια τιμή που έχουμε αποθηκεύσει προσωρινά στη μνήμη του υπολογιστή.

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

Σύνταξη: Ο Τελεστής Ανάθεσης (=)

Πώς δημιουργούμε μια μεταβλητή στην Python; Η διαδικασία είναι πολύ απλή και ακολουθεί την εξής δομή:

variable = expression

Ας το αναλύσουμε:

Variable: Είναι το όνομα που δίνουμε εμείς (π.χ. number, price).

= (Assignment Operator): Το σύμβολο αυτό ΔΕΝ σημαίνει ισότητα. Ονομάζεται Τελεστής Ανάθεσης. Η δουλειά του είναι να πάρει την τιμή από δεξιά και να την "αναθέσει" (αποθηκεύσει) στη μεταβλητή αριστερά.

Expression: Είναι η τιμή ή ο κώδικας που παράγει την τιμή (π.χ. 10, 5 + 5, "Hello").

number = 10

Εδώ, λέμε στον υπολογιστή: "Πάρε τον αριθμό 10 και αποθήκευσέ τον στη μνήμη με το όνομα number".

Μεταβλητές και Print()

Το όνομα "μεταβλητή" δεν είναι τυχαίο. Σημαίνει ότι η τιμή της μπορεί να μεταβληθεί (αλλάξει) κατά τη διάρκεια εκτέλεσης του προγράμματος.

Πώς βλέπουμε την τιμή της; Για να δούμε τι κρύβει μέσα της μια μεταβλητή, χρησιμοποιούμε την print().

⚠️ Ο Χρυσός Κανόνας: Όταν τυπώνουμε μεταβλητές, ΔΕΝ βάζουμε εισαγωγικά!
  • print(number) -> Τυπώνει την τιμή (π.χ. 10).
  •  print("number") -> Τυπώνει τη λέξη "number" (String Literal).

Ας δούμε στην πράξη πώς ορίζουμε, τυπώνουμε και αλλάζουμε την τιμή μιας μεταβλητής.

Ανοίξτε το VS Code και γράψτε:

app.py

number = 10
print("In the soccer team, I have the number")
print(number)

Output

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

Τι ακριβώς συνέβη εδώ;

  1. Ορισμός: Στην πρώτη γραμμή, δημιουργήσαμε μια μεταβλητή με το όνομα number και της δώσαμε την τιμή 10.
  2.  Εκτύπωση Μηνύματος: Στη δεύτερη γραμμή, τυπώσαμε ένα κείμενο (String). Προσέξτε ότι βάλαμε εισαγωγικά, γιατί θέλαμε να εμφανιστεί ακριβώς αυτή η φράση.
  3.  Εκτύπωση Μεταβλητής: Στην τρίτη γραμμή, τυπώσαμε το 10.
 ⚠️ ΠΡΟΣΟΧΗ: Εδώ γράψαμε print(number) χωρίς εισαγωγικά. Έτσι, η Python κατάλαβε ότι δεν θέλουμε να τυπώσουμε τη λέξη "number", αλλά την αξία που κρύβεται μέσα στο κουτί με αυτό το όνομα.

Ο Κανόνας της Ροής (Right-to-Left) 

Υπάρχει ένας απαράβατος κανόνας στον προγραμματισμό που πρέπει να θυμάστε για πάντα:

Η ανάθεση τιμής γίνεται ΠΑΝΤΑ από τα ΔΕΞΙΑ προς τα ΑΡΙΣΤΕΡΑ.

Σκεφτείτε το σύμβολο του ίσον (=) σαν ένα βέλος που δείχνει προς τα αριστερά (<--).

  • Πρώτα ο υπολογιστής κοιτάει τι υπάρχει στα Δεξιά (την τιμή 10).
  •  Μετά παίρνει αυτή την τιμή και την αποθηκεύει στη μεταβλητή που βρίσκεται στα Αριστερά (number).

Γι' αυτό και δεν μπορούμε να γράψουμε 10 = number. Θα ήταν σαν να προσπαθούμε να βάλουμε το κουτί μέσα στην τιμή, που είναι αδύνατον!

Ας εμπλουτίσουμε το πρόγραμμά μας. Εκτός από τον αριθμό φανέλας, θέλουμε να αποθηκεύσουμε και τον μέσο όρο γκολ ανά αγώνα.

Γράψτε τον παρακάτω κώδικα:

app.py

number = 10
average = 1.4
print("In the soccer team, I have the number")
print(number)
print("and I usually score an average of")
print(average)
print("goals per game")

Output

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

Δυναμικοί Τύποι Δεδομένων (Dynamic Typing)

Από το παραπάνω παράδειγμα, προκύπτουν δύο πολύ σημαντικά συμπεράσματα που κάνουν την Python να ξεχωρίζει από άλλες γλώσσες (όπως η Java ή η C++).

Στην Python, δεν χρειάζεται να δηλώσουμε από πριν τι είδους δεδομένα θα περιέχει μια μεταβλητή. Η γλώσσα είναι αρκετά "έξυπνη" για να το καταλάβει μόνη της από την τιμή που της δίνουμε.

  • Στη μεταβλητή number δώσαμε την τιμή 10. Η Python είδε ότι είναι ακέραιος και αυτόματα την όρισε ως Integer.
  •  Στη μεταβλητή average δώσαμε την τιμή 1.4. Η Python είδε την υποδιαστολή και αυτόματα την όρισε ως Float.

 Ο Κανόνας: Η μεταβλητή αποκτά τον τύπο δεδομένων (Data Type) της τιμής που της αναθέτουμε εκείνη τη στιγμή.

Υποχρεωτική Αρχικοποίηση (Initialization) 

Στην Python, απαγορεύεται να δημιουργήσουμε μια μεταβλητή "κενή". Πρέπει πάντα να της αναθέσουμε μια τιμή τη στιγμή που τη δημιουργούμε.

Τι θα συμβεί αν προσπαθήσετε να τυπώσετε μια μεταβλητή που δεν της έχετε δώσει τιμή;

app.py

# Λάθος Κώδικας
print(score)
# Εδώ προσπαθούμε να τυπώσουμε το 'score' χωρίς να το έχουμε ορίσει πριν

Output

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

 Ο Κανόνας: Δεν μπορούμε να χρησιμοποιήσουμε μια μεταβλητή αν πρώτα δεν της έχουμε δώσει μια αρχική τιμή (ακόμα και αν αυτή είναι το 0).

ΠΩΣ ΟΝΟΜΑΖΟΥΜΕ ΤΙΣ ΜΕΤΑΒΛΗΤΕΣ (PEP 8)

Τώρα που μάθαμε πώς να φτιάχνουμε μεταβλητές, πρέπει να μάθουμε και πώς να τις "βαφτίζουμε" σωστά.

Πριν δούμε τους κανόνες, πρέπει να αναφέρουμε το PEP 8. Το PEP 8 (Python Enhancement Proposal 8) είναι ο "Οδηγός Στυλ" της Python. Είναι το Ευαγγέλιο των προγραμματιστών, που μας λέει πώς πρέπει να γράφουμε κώδικα ώστε να είναι ευανάγνωστος και καθαρός.

Γιατί να το ακολουθήσω; Αν δεν ακολουθήσετε αυτούς τους κανόνες, ο κώδικας θα τρέξει κανονικά (δεν θα βγάλει λάθος). Όμως, θα είναι δυσανάγνωστος και "άσχημος" για οποιονδήποτε άλλο προγραμματιστή (ή ακόμα και για εσάς στο μέλλον) προσπαθήσει να τον διαβάσει.

(https://peps.python.org/pep-0008/)
Δωρεάν Μαθήματα Python

Ο Κανόνας του Snake Case 🐍 

Σύμφωνα με το PEP 8, τα ονόματα των μεταβλητών πρέπει να ακολουθούν δύο βασικές αρχές:

  1. Όλοι οι χαρακτήρες πρέπει να είναι πεζά (μικρά) γράμματα.
  2.  Αν το όνομα αποτελείται από πολλές λέξεις, τις χωρίζουμε με κάτω παύλα (underscore _).

Αυτό το στυλ ονομάζεται snake_case, επειδή η κάτω παύλα μοιάζει με φίδι που ενώνει τις λέξεις στο πάτωμα!

Παραδείγματα:

✅ Σωστό (Snake Case)❌ Λάθος
number = 10Number = 10 (Κεφαλαίο)
monthly_installments = 24monthlyInstallments = 24 (camelCase)
total_price = 100Total Price = 100 (Κενό)

Σημείωση: Υπάρχουν και ονόματα που ξεκινούν με κάτω παύλα (π.χ. _tax), αλλά αυτά έχουν ειδική σημασία που θα αναλύσουμε σε προχωρημένα μαθήματα. Προς το παρόν, χρησιμοποιούμε απλά γράμματα.

 Οι Απαγορευμένες Λέξεις (Keywords)

 Προσοχή! Υπάρχουν μερικές λέξεις που η Python έχει "καπαρώσει" για δική της χρήση. Αυτές ονομάζονται Reserved Keywords.

Δεν μπορείτε να ονομάσετε μια μεταβλητή if ή class, γιατί η Python θα μπερδευτεί. Ευτυχώς, το VS Code είναι έξυπνο και θα σας κοκκινίσει τη λέξη αν προσπαθήσετε να τη χρησιμοποιήσετε.

 Μερικές από τις λέξεις που ΔΕΝ πρέπει να χρησιμοποιείτε:

  • False, True, None
  •  and, or, not
  •  if, else, elif
  •  for, while, break
  •  def, class, return
  •  import, from

4 Κανόνες που δεν πρέπει να σπάσετε

Εκτός από τα παραπάνω, υπάρχουν 4 αυστηροί κανόνες. Αν τους παραβείτε, το πρόγραμμα δεν θα τρέξει καθόλου (Syntax Error).

  1. ΌΧΙ Κενά: Το όνομα total average απαγορεύεται. Χρησιμοποιήστε total_average.
  2.  ΌΧΙ Αριθμοί στην αρχή: Το 1st_player απαγορεύεται. Το player_1 επιτρέπεται.
  3.  ΌΧΙ Ειδικά Σύμβολα: Απαγορεύονται τα @, $, -. Επιτρέπεται μόνο η κάτω παύλα _.
  4.  Case Sensitivity: Η Python ξεχωρίζει τα πεζά από τα κεφαλαία.

Τα παρακάτω είναι 3 διαφορετικές μεταβλητές για την Python!

app.py

car = "Toyota"
Car = "Honda"
CAR = "Ford"

print(car) # Τυπώνει: Toyota
print(Car) # Τυπώνει: Honda

Output

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


ΚΑΛΥΤΕΡΗ ΧΡΗΣΗ ΤΗΣ PRINT FUNCTION

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

Η Python όμως μας δίνει έναν πολύ πιο σύντομο τρόπο. Η συνάρτηση print() μπορεί να δεχτεί πολλαπλά arguments, αρκεί να τα χωρίσουμε με ένα κόμμα (,).

Όταν βάζουμε κόμμα ανάμεσα στα δεδομένα, η Python κάνει αυτόματα δύο πράγματα:

  1. Τυπώνει τα δεδομένα στην ίδια σειρά.
  2.  Προσθέτει αυτόματα ένα κενό διάστημα (space) ανάμεσά τους.

Πριν δούμε το παράδειγμα, ας κάνουμε μια μικρή άσκηση στο VS Code.

Αν αρχίσετε να πληκτρολογείτε print(, θα δείτε να εμφανίζεται ένα μικρό παράθυρο πληροφοριών (tooltip). Αυτό είναι το Documentation της Python που μας "σερβίρει" το VS Code.

Αν παρατηρήσετε, η πρώτη λέξη είναι *values. Το αστεράκι (*) σημαίνει "πολλά". Αυτό μας λέει ότι η print() είναι σχεδιασμένη να δέχεται πολλές τιμές (values), η μία μετά την άλλη, αρκεί να χωρίζονται με κόμμα.

 

Python Documentation


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

Παρατηρήστε πόσο πιο καθαρός και ευανάγνωστος είναι ο κώδικας τώρα:

app.py

number = 10
average = 1.4

# Ο Παλιός Τρόπος (4 γραμμές)
# print("In the soccer team, I have the number")
# print(number)
# print("and I usually score an average of")
# print(average)

# Ο Νέος Τρόπος (1 γραμμή!)
print("In the soccer team, I have the number", number,
      "and I usually score an average of", average)

Output


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

ΑΝΑΘΕΣΗ ΝΕΑΣ ΤΙΜΗΣ - Η ΕΝΝΟΙΑ ΤΗΣ "ΜΕΤΑΒΛΗΤΗΣ"

Όπως προδίδει και το όνομά της, μια Μεταβλητή (Variable) δεν είναι σταθερή. Η τιμή της μπορεί να αλλάξει οποιαδήποτε στιγμή κατά τη διάρκεια εκτέλεσης του προγράμματος.

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

Ας δούμε το παράδειγμα στην πράξη:

app.py

# Αρχική ανάθεση τιμών
number = 10
average = 1.4

print("In the soccer team, I have the number", number)
print("and I usually score an average of", average, "goals per game")

# ---------------------------------------------------------
# Αλλαγή τιμών (Reassignment)
# ---------------------------------------------------------
number = 33
average = 2.3

print("In the soccer team, I have the number", number)
print("and I usually score an average of", average, "goals per game")

Output


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

Εδώ συμβαίνει κάτι μαγικό που αξίζει να καταλάβετε.

Όταν γράψαμε number = 33, η παλιά τιμή (10) δεν σβήστηκε αμέσως. Υπάρχει ακόμα κάπου στη μνήμη του υπολογιστή. Όμως, πλέον δεν υπάρχει καμία ετικέτα (μεταβλητή) που να οδηγεί σε αυτήν. Είναι "ορφανή".

Ο "Σκουπιδιάρης" της Python (Garbage Collector)

 Η Python έχει έναν ενσωματωμένο μηχανισμό που ονομάζεται Garbage Collector.

Η δουλειά του είναι να σαρώνει τη μνήμη και να εντοπίζει τιμές που δεν χρησιμοποιούνται πια (όπως το 10 στο παράδειγμά μας). Μόλις τις βρει, τις διαγράφει οριστικά για να ελευθερώσει χώρο στη μνήμη RAM.

Αυτή η διαδικασία γίνεται αυτόματα και είναι ένας από τους λόγους που η Python είναι τόσο φιλική γλώσσα: Δεν χρειάζεται να καθαρίζετε τη μνήμη εσείς, το κάνει η Python για εσάς!

❤️ Στηρίξτε την προσπάθεια

Το Ground of Code μεγαλώνει χάρη στη δική σας υποστήριξη.

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

 

full-width


Post a Comment

0 Comments