Πρώτα βήματα
Δεδομένα
Αποφάσεις
Επανάληψη
Συναρτήσεις και σφάλματα
Αριθμοί, κείμενο, αληθές και ψευδές
Ένα e-shop βγάζει τις παραγγελίες του σε ένα αρχείο και το πρόγραμμά σου διαβάζει δύο ποσότητες από αυτό: 2 τεμάχια από το ένα προϊόν, 3 από το άλλο. Τις προσθέτεις για να βρεις πόσα κουτιά θα φύγουν με το courier. Το πρόγραμμα τυπώνει 23.
Πρόβλεψεprint(2 + 3) print("2" + "3")Τι θα εμφανιστεί στην οθόνη;
Διάλεξε μία
Στο αρχείο του e-shop οι ποσότητες ήταν γραμμένες ως κείμενο, οπότε το + τις κόλλησε. Το πρόγραμμα έκανε ακριβώς αυτό που του ζήτησες.
Κάθε τιμή έχει τύπο
Κάθε τιμή σε ένα πρόγραμμα ανήκει σε ένα είδος. Το είδος αυτό λέγεται τύπος δεδομένων. Ο τύπος λέει στην Python τι είναι η τιμή και τι μπορεί να κάνει με αυτή. Για να ξεκινήσεις αρκούν τρία είδη: αριθμοί, κείμενο, αληθές και ψευδές.
Οι αριθμοί χωρίζονται σε δύο τύπους. Ο int είναι ακέραιος, όπως 4, -12 ή 2026. Ο float είναι δεκαδικός, όπως 4.5. Το κείμενο είναι str, από το string. Το αληθές και ψευδές είναι bool και έχει μόνο δύο τιμές,
True και False.Τα ονόματα αλλάζουν από γλώσσα σε γλώσσα, αλλά τα ίδια είδη υπάρχουν σε όλες.
Μπορείς να ρωτήσεις την Python για τον τύπο μιας τιμής με το
type. Τρέξε το παρακάτω και μετά πρόσθεσε δικές σου γραμμές: τι τύπο έχει το -7; Το "True"; Το 0.0;python
Θα δεις γραμμές όπως
<class 'int'>. Το class είναι ο τρόπος που η Python λέει «τύπος». Κράτα μόνο τη λέξη μέσα στα εισαγωγικά.Πώς ξεχωρίζεις τον τύπο στον κώδικα
Ο τύπος φαίνεται από τον τρόπο που είναι γραμμένη η τιμή:
Δύο γραμμές του πίνακα θέλουν προσοχή.
Ο δεκαδικός γράφεται με τελεία, όπως στα αγγλικά. Στα ελληνικά γράφουμε 4,5. Αν το γράψεις έτσι στον κώδικα, η Python δε βγάζει σφάλμα. Το
print(4,5) τυπώνει 4 5, γιατί το κόμμα χωρίζει δύο τιμές: τον αριθμό 4 και τον αριθμό 5.Τα εισαγωγικά αλλάζουν τον τύπο. Το
4 είναι int, το "4" είναι str. Το True είναι bool, το "True" είναι κείμενο με τέσσερα γράμματα. Στην οθόνη τυπώνονται ίδια, γιατί το print δε δείχνει τα εισαγωγικά, οπότε από την έξοδο μόνο δεν μπορείς να καταλάβεις τον τύπο.Ο τύπος αποφασίζει τι κάνει η πράξη
Με δύο αριθμούς το + προσθέτει. Με δύο κείμενα τα ενώνει. Με έναν αριθμό και ένα κείμενο, η Python σταματάει:
textTypeError: 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 απευθείας σε μια μεταβλητή:
pythonin_stock = True logged_in = False
Ένα bool συνήθως δεν το γράφεις εσύ, το βρίσκεις. Φτιάξε για ένα προϊόν του e-shop τις μεταβλητές
in_stock, price, name και quantity και τύπωσε τον τύπο της καθεμιάς. Η name είναι έτοιμη.python
Το ίδιο σε ψευδοκώδικα
Ένα πρόγραμμα του σχολείου κρατάει τα στοιχεία ενός μαθητή, με μία τιμή από κάθε τύπο:
pythonname = "Μαρία" 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 είναι δωρεάν. Κάνε σύνδεση για να κρατάς την πρόοδο και τις σημειώσεις σου.