Αριθμοί, κείμενο, αληθές και ψευδές

Ένα e-shop βγάζει τις παραγγελίες του σε ένα αρχείο και το πρόγραμμά σου διαβάζει δύο ποσότητες από αυτό: 2 τεμάχια από το ένα προϊόν, 3 από το άλλο. Τις προσθέτεις για να βρεις πόσα κουτιά θα φύγουν με το courier. Το πρόγραμμα τυπώνει 23.
Πρόβλεψε
print(2 + 3)
print("2" + "3")

Τι θα εμφανιστεί στην οθόνη;

Διάλεξε μία

Στο αρχείο του e-shop οι ποσότητες ήταν γραμμένες ως κείμενο, οπότε το + τις κόλλησε. Το πρόγραμμα έκανε ακριβώς αυτό που του ζήτησες.

Κάθε τιμή έχει τύπο

Κάθε τιμή σε ένα πρόγραμμα ανήκει σε ένα είδος. Το είδος αυτό λέγεται τύπος δεδομένων. Ο τύπος λέει στην Python τι είναι η τιμή και τι μπορεί να κάνει με αυτή. Για να ξεκινήσεις αρκούν τρία είδη: αριθμοί, κείμενο, αληθές και ψευδές.
Τα τρία είδη δεδομένων Δέντρο: τα δεδομένα χωρίζονται σε αριθμούς, κείμενο και αληθές ή ψευδές. Οι αριθμοί είναι int, ακέραιοι όπως 4 και -12, ή float, δεκαδικοί όπως 4.5. Το κείμενο είναι str, όπως "Νίκος". Το αληθές ή ψευδές είναι bool, True ή False. Δεδομένα Αριθμοί Κείμενο Αληθές / ψευδές int 4, -12 float 4.5 str "Νίκος" bool True, False
Οι αριθμοί χωρίζονται σε δύο τύπους. Ο int είναι ακέραιος, όπως 4, -12 ή 2026. Ο float είναι δεκαδικός, όπως 4.5. Το κείμενο είναι str, από το string. Το αληθές και ψευδές είναι bool και έχει μόνο δύο τιμές, True και False.
Τα ονόματα αλλάζουν από γλώσσα σε γλώσσα, αλλά τα ίδια είδη υπάρχουν σε όλες.
Μπορείς να ρωτήσεις την Python για τον τύπο μιας τιμής με το type. Τρέξε το παρακάτω και μετά πρόσθεσε δικές σου γραμμές: τι τύπο έχει το -7; Το "True"; Το 0.0;
python
Θα δεις γραμμές όπως <class 'int'>. Το class είναι ο τρόπος που η Python λέει «τύπος». Κράτα μόνο τη λέξη μέσα στα εισαγωγικά.

Πώς ξεχωρίζεις τον τύπο στον κώδικα

Ο τύπος φαίνεται από τον τρόπο που είναι γραμμένη η τιμή:
Πώς φαίνεται κάθε τύπος στον κώδικα Πίνακας: int, παραδείγματα 4, -12, 2026, γράφεται χωρίς τελεία. float, 4.5 και 0.1, με τελεία και όχι κόμμα. str, "Νίκος" και "4", μέσα σε εισαγωγικά. bool, True και False, με κεφαλαίο και χωρίς εισαγωγικά. ΤΥΠΟΣ ΠΑΡΑΔΕΙΓΜΑΤΑ ΠΩΣ ΤΟΝ ΑΝΑΓΝΩΡΙΖΕΙΣ int 4, -12, 2026 χωρίς τελεία float 4.5, 0.1 με τελεία, όχι κόμμα str "Νίκος", "4" μέσα σε εισαγωγικά bool True, False κεφαλαίο, χωρίς εισαγωγικά
Δύο γραμμές του πίνακα θέλουν προσοχή.
Ο δεκαδικός γράφεται με τελεία, όπως στα αγγλικά. Στα ελληνικά γράφουμε 4,5. Αν το γράψεις έτσι στον κώδικα, η Python δε βγάζει σφάλμα. Το print(4,5) τυπώνει 4 5, γιατί το κόμμα χωρίζει δύο τιμές: τον αριθμό 4 και τον αριθμό 5.
Τα εισαγωγικά αλλάζουν τον τύπο. Το 4 είναι int, το "4" είναι str. Το True είναι bool, το "True" είναι κείμενο με τέσσερα γράμματα. Στην οθόνη τυπώνονται ίδια, γιατί το print δε δείχνει τα εισαγωγικά, οπότε από την έξοδο μόνο δεν μπορείς να καταλάβεις τον τύπο.

Ο τύπος αποφασίζει τι κάνει η πράξη

Με δύο αριθμούς το + προσθέτει. Με δύο κείμενα τα ενώνει. Με έναν αριθμό και ένα κείμενο, η Python σταματάει:
text
TypeError: can only concatenate str (not "int") to str
Το μήνυμα λέει ότι μπορεί να ενώσει κείμενο μόνο με κείμενο, όχι με int. Η Python δεν ξέρει αν ήθελες πρόσθεση ή ένωση, οπότε δε μαντεύει. Υπάρχουν γλώσσες που μαντεύουν και συνεχίζουν με λάθος τιμή. Ένα σφάλμα που σταματάει το πρόγραμμα βρίσκεται πιο εύκολα από μια λάθος τιμή που περνάει απαρατήρητη.
Η παρακάτω γραμμή δε δουλεύει. Τρέξε την, διάβασε το σφάλμα και διόρθωσέ την χωρίς να σβήσεις τον αριθμό 5. Υπάρχουν δύο τρόποι.
python

Αριθμός ή κείμενο

Ένα ΑΦΜ έχει μόνο ψηφία, όπως και ένα κινητό. Αυτό δεν τα κάνει αριθμούς. Ένας απλός κανόνας: αν δε θα κάνεις πράξεις με την τιμή, κράτα την ως κείμενο.
Δεν έχει νόημα να προσθέσεις δύο ΑΦΜ ή να διπλασιάσεις ένα τηλέφωνο. Και υπάρχει πρακτικός λόγος: κάποια ΑΦΜ ξεκινούν με μηδέν. Αν γράψεις 012345678 χωρίς εισαγωγικά, η Python σταματάει με SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers, δηλαδή δε δέχεται ακέραιο που ξεκινάει με μηδέν. Ως κείμενο, "012345678", το μηδέν μένει στη θέση του.
Ένα ποσό ή μια ποσότητα είναι αριθμός, γιατί με αυτά κάνεις πράξεις.

Αληθές και ψευδές

Ο τύπος bool έχει μόνο δύο τιμές, True και False, με κεφαλαίο το πρώτο γράμμα και χωρίς εισαγωγικά. Ένα bool είναι η απάντηση σε μια ερώτηση με ναι ή όχι, όπως «υπάρχει το προϊόν στην αποθήκη;».
Μπορείς να γράψεις ένα bool απευθείας σε μια μεταβλητή:
python
in_stock = True
logged_in = False
Ένα bool συνήθως δεν το γράφεις εσύ, το βρίσκεις. Φτιάξε για ένα προϊόν του e-shop τις μεταβλητές in_stock, price, name και quantity και τύπωσε τον τύπο της καθεμιάς. Η name είναι έτοιμη.
python

Το ίδιο σε ψευδοκώδικα

Ένα πρόγραμμα του σχολείου κρατάει τα στοιχεία ενός μαθητή, με μία τιμή από κάθε τύπο:
python
name = "Μαρία"
grade = 18.5
absences = 12
promoted = True
Σε ψευδοκώδικα γράφεις τον τύπο κάθε μεταβλητής πριν από το ΑΡΧΗ:
ΓΛΩΣΣΑ
ΠΡΟΓΡΑΜΜΑ ΜΑΘΗΤΗΣ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΑΠΟΥΣΙΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: ΒΑΘΜΟΣ
  ΧΑΡΑΚΤΗΡΕΣ: ΟΝΟΜΑ
  ΛΟΓΙΚΕΣ: ΠΡΟΑΓΕΤΑΙ
ΑΡΧΗ
  ΟΝΟΜΑ ← 'Μαρία'
  ΒΑΘΜΟΣ ← 18.5
  ΑΠΟΥΣΙΕΣ ← 12
  ΠΡΟΑΓΕΤΑΙ ← ΑΛΗΘΗΣ
  ΓΡΑΨΕ ΟΝΟΜΑ, ΒΑΘΜΟΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Οι τέσσερις τύποι είναι οι ίδιοι, με ελληνικά ονόματα: ο float λέγεται πραγματικός, το κείμενο χαρακτήρες και το bool λογικός, με τιμές ΑΛΗΘΗΣ και ΨΕΥΔΗΣ. Αυτό που αλλάζει περισσότερο είναι η δήλωση. Μια μεταβλητή που δήλωσες ΑΚΕΡΑΙΕΣ κρατάει μόνο ακέραιους σε όλο το πρόγραμμα. Στην Python τον τύπο τον έχει η τιμή, οπότε το absences μπορεί να πάρει αργότερα και κείμενο και η Python δε θα βγάλει σφάλμα.

Σύνοψη

  • Κάθε τιμή έχει τύπο δεδομένων. Ο τύπος αποφασίζει τι μπορείς να κάνεις με αυτή.
  • Τα βασικά είδη είναι αριθμοί (int για ακέραιους, float για δεκαδικούς), κείμενο (str) και αληθές ή ψευδές (bool).
  • Τον τύπο τον βλέπεις από τη γραφή: τελεία για δεκαδικό, εισαγωγικά για κείμενο, True ή False χωρίς εισαγωγικά για bool. Το type σου τον λέει όταν δεν είσαι σίγουρος.
  • Το + προσθέτει αριθμούς και ενώνει κείμενα. Όταν ενώνεις αριθμό με κείμενο, η Python σταματάει με TypeError.
  • Ο δεκαδικός θέλει τελεία. Το 4,5 είναι δύο αριθμοί χωρισμένοι με κόμμα.
  • Οι τιμές που δεν τις χρησιμοποιείς σε πράξεις, όπως το ΑΦΜ ή ένα τηλέφωνο, κρατιούνται ως κείμενο. Αν ένα ΑΦΜ ξεκινάει με μηδέν, το μηδέν μένει μόνο σε κείμενο.
  • Στον ψευδοκώδικα δηλώνεις τον τύπο κάθε μεταβλητής πριν από το ΑΡΧΗ: ΑΚΕΡΑΙΕΣ, ΠΡΑΓΜΑΤΙΚΕΣ, ΧΑΡΑΚΤΗΡΕΣ, ΛΟΓΙΚΕΣ. Στην Python ο τύπος ανήκει στην τιμή.

Θες να συνεχίσεις;

Το course είναι δωρεάν. Κάνε σύνδεση για να κρατάς την πρόοδο και τις σημειώσεις σου.