Στην Python, οι τύποι δεδομένων αναφέρονται στο είδος της τιμής που μπορεί να αντιστοιχεί σε μια μεταβλητή. Υπάρχουν αρκετοί τύποι δεδομένων στην Python, μεταξύ των οποίων:
- Ακέραιοι αριθμοί (integers)
- Δεκαδικοί αριθμοί (floats)
- Λογική τιμή (boolean)
- Συμβολοσειρές (strings)
- Λίστες (lists)
- Πλειάδες (tuples)
- Λεξικά (dictionaries)
- Sets και Frozensets
- Αντικείμενα None
Κάθε τύπος δεδομένων έχει τις δικές του ιδιότητες και λειτουργίες που μπορούν να εκτελεστούν πάνω του. Επίσης, στην Python, οι μεταβλητές δεν χρειάζεται να δηλωθούν εκ των προτέρων με έναν συγκεκριμένο τύπο δεδομένων, αλλά μπορούν να λάβουν οποιαδήποτε τιμή του αντίστοιχου τύπου δεδομένων κατά τη διάρκεια της εκτέλεσης του προγράμματος.
Στην Python υπάρχουν διάφοροι ενσωματωμένοι τύποι δεδομένων, οι οποίοι διακρίνονται σε διάφορες κατηγορίες:
- Τύπος κειμένου (Text Type): str
- Αριθμητικοί τύποι (Numeric Types): int, float, complex
- Τύποι ακολουθίας (Sequence Types): list, tuple, range
- Τύπος αντιστοίχισης (Mapping Type): dict
- Τύποι συνόλου (Set Types): set, frozenset
- Τύπος Boolean: bool
- Δυαδικοί τύποι (Binary Types): bytes, bytearray, memoryview
- Τύπος None: NoneType
Στην Python, ο τύπος δεδομένων ορίζεται κατά την ανάθεση μιας τιμής σε μια μεταβλητή
Μπορούμε να δώσουμε την ακόλουθη εντολή για να αναθέσουμε την τιμή “Hello, World!” σε μια μεταβλητή με το όνομα my_str και στη συνέχεια να εμφανίσουμε την τιμή αυτή και τον τύπο της με τη χρήση της συνάρτησης type():
my_str = "Hello, World!" print(my_str) print(type(my_str))
Το αποτέλεσμα θα είναι:
Hello, World! <class 'str'>
Μπορούμε να δώσουμε την ακόλουθη εντολή για να αναθέσουμε την τιμή 42 σε μια μεταβλητή με το όνομα my_int και στη συνέχεια να εμφανίσουμε την τιμή αυτή και τον τύπο της με τη χρήση της συνάρτησης type():
my_int = 42 print(my_int) print(type(my_int))
Το αποτέλεσμα θα είναι:
42 <class 'int'>
Οι ακέραιοι αριθμοί είναι μόνο ακέραιοι, αλλά οι αριθμοί κινητής υποδιαστολής μπορούν να έχουν δεκαδικά ψηφία. Εδώ είναι ένα παράδειγμα float και το αποτέλεσμα του τύπου του:
x = 3.14 print(type(x))
Αυτό θα πρέπει να επιστρέψει:
<class 'float'>
Μπορούμε να ορίσουμε έναν αριθμό σε μορφή επαγωγικού αριθμού (j) για να δημιουργήσεις έναν αριθμό τύπου complex στην Python.
x = 3 + 5j print(type(x))
Αυτό θα πρέπει να εκτυπώσει:
<class 'complex'>
Το datatype “list” είναι μια δομή δεδομένων που μπορεί να αποθηκεύσει μια σειρά τιμών με διάφορους τύπους δεδομένων. Οι τιμές αυτές μπορούν να είναι αντικείμενα άλλων τύπων δεδομένων, όπως ακέραιοι, αλφαριθμητικά ή αντικείμενα από άλλες κλάσεις στην Python. Τα αντικείμενα στη λίστα είναι ταξινομημένα και μπορούν να αλλάξουν, δηλαδή η λίστα είναι μεταβλητή.
Μπορείτε να δημιουργήσετε μια λίστα χρησιμοποιώντας την ακόλουθη σύνταξη:
my_list = [1, "hello", True] print(my_list)
Το αποτέλεσμα που θα εκτυπωθεί στην οθόνη θα είναι η λίστα που δημιουργήσαμε:
[1, 'hello', True]
Η συνάρτηση type() μπορεί να χρησιμοποιηθεί για να επιστρέψει τον τύπο μιας μεταβλητής. Για παράδειγμα, αν χρησιμοποιήσουμε τη συνάρτηση type() για τη λίστα my_list, θα επιστραφεί ο τύπος list, όπως φαίνεται στο παρακάτω παράδειγμα:
print(type(my_list))
Αποτέλεσμα:
<class 'list'>
Ένα tuple είναι μια ακολουθία αντικειμένων, όπως και η λίστα, αλλά διαφέρει από αυτήν καθώς είναι αμετάβλητο (immutable), δηλαδή μια φορά που δημιουργηθεί, δεν μπορεί να αλλάξει το περιεχόμενό του. Τα στοιχεία ενός tuple διαχωρίζονται με κόμμα και μπορούν να περικλείονται σε παρενθέσεις ή ακόμα και να μην περικλείονται, ανάλογα με την προτίμησή σας.
Παράδειγμα:
my_tuple = ("apple", "banana", "cherry") print(my_tuple)
Το αποτέλεσμα θα είναι:
('apple', 'banana', 'cherry')
Παρατηρούμε ότι το tuple περικλείεται σε παρενθέσεις και αποτελείται από τρία στοιχεία, τα οποία είναι συμβολοσειρές. Ο τύπος του tuple είναι tuple, όπως φαίνεται στην οθόνη κατά την εκτέλεση του παραπάνω κώδικα.
Αν δώσουμε το παραπάνω παράδειγμα με το tuple στην type() συνάρτηση, θα λάβουμε το εξής αποτέλεσμα:
my_tuple = ("apple", "banana", "cherry") print(type(my_tuple))
Το αποτέλεσμα θα είναι:
<class 'tuple'>
Επιστρέφεται ο τύπος του αντικειμένου, στην περίπτωσή μας, ο τύπος είναι tuple.
Το range είναι ένας τύπος ακολουθίας (sequence type) στην Python, ο οποίος δημιουργείται με την built-in συνάρτηση range(). Ο τύπος range αντιπροσωπεύει μια ακολουθία ακεραίων αριθμών με ένα συγκεκριμένο βήμα.
Το range μπορεί να χρησιμοποιηθεί για να δημιουργήσει μια ακολουθία ακεραίων από έναν αριθμό έως έναν άλλο αριθμό, χρησιμοποιώντας τη συνάρτηση range(). Το αποτέλεσμα είναι μια ακολουθία ακεραίων που μπορεί να χρησιμοποιηθεί για επαναλήψεις ή άλλες επεξεργασίες.
Παράδειγμα:
my_range = range(0, 10, 2) print(my_range) print(type(my_range))
Το αποτέλεσμα στην οθόνη θα είναι:
range(0, 10, 2) <class 'range'>
Στο παράδειγμα αυτό, δημιουργούμε ένα range από το 0 έως το 10 με βήμα 2 και το αποθηκεύουμε στη μεταβλητή my_range. Στη συνέχεια, εκτυπώνουμε τη μεταβλητή my_range και τον τύπο της με τη χρήση της συνάρτησης type(). Το αποτέλεσμα δείχνει ότι η μεταβλητή my_range είναι τύπου range.
Το dictionary (dict) είναι ένας τύπος δεδομένων που αποθηκεύει ζεύγη κλειδιού-τιμής (key-value pairs). Κάθε κλειδί (key) στο λεξικό πρέπει να είναι μοναδικό και αντιστοιχεί σε μια τιμή (value). Οι τιμές μπορούν να είναι οποιουδήποτε τύπου δεδομένων της Python, ενώ τα κλειδιά μπορούν να είναι αλφαριθμητικά (string), αριθμοί ή tuples.
Ένα παράδειγμα ενός dictionary στην Python είναι το εξής:
my_dict = {"apple": 2, "banana": 4, "orange": 1} print(type(my_dict))
Το αποτέλεσμα του print(type(my_dict)) θα είναι:
<class 'dict'>
Το set είναι ένας τύπος δεδομένων στην Python που αντιπροσωπεύει μια μοναδική συλλογή από αντικείμενα, όπου τα αντικείμενα δεν εμφανίζονται παραπάνω από μία φορά. Τα στοιχεία του set είναι μη ταξινομημένα και απαραίτητα όλα διαφορετικά μεταξύ τους. Το σετ μπορεί να περιέχει διαφορετικούς τύπους δεδομένων, όπως αριθμούς, αλφαριθμητικά και ακόμα και άλλα σετ.
Ένα παράδειγμα σετ στην Python είναι το εξής:
my_set = {1, 2, 3, 4, 5} print(my_set)
Το αποτέλεσμα στην οθόνη θα είναι:
{1, 2, 3, 4, 5}
Το αποτέλεσμα του type() για το παράδειγμα του τύπου set θα πρέπει να είναι το εξής:
>>> my_set = {1, 2, 3} >>> print(type(my_set)) <class 'set'>
Το frozenset είναι μια ενσωματωμένη δομή δεδομένων στην Python, παρόμοια με το set, αλλά διαφορετικά από το set, είναι αμετάβλητο (immutable), δηλαδή δεν μπορεί να αλλάξει μετά τη δημιουργία του. Το frozenset μπορεί να περιέχει μόνο μη μεταβλητά (immutable) στοιχεία, όπως ακέραιους αριθμούς, δεδομένα κατάστασης και ακόμα και άλλα frozenset.
Μπορούμε να δημιουργήσουμε ένα frozenset χρησιμοποιώντας τη συνάρτηση frozenset() και παρέχοντας μια λίστα ή μια άλλη επαρκή ακολουθία ως όρισμα. Ακολουθεί ένα παράδειγμα και η έξοδος του αποτελέσματος του τύπου στην οθόνη:
my_frozenset = frozenset([1, 2, 3, 4]) print(my_frozenset) print(type(my_frozenset))
Έξοδος:
frozenset({1, 2, 3, 4}) <class 'frozenset'>
Ο τύπος bool στην Python αντιπροσωπεύει τις δύο τιμές True (Αληθής) και False (Ψευδής). Ο τύπος bool χρησιμοποιείται συχνά σε συνθήκες και λογικές πράξεις.
Παράδειγμα:
x = 5 y = 10 z = x < y print(z)
Το παραπάνω πρόγραμμα δηλώνει μια μεταβλητή z που αντιστοιχεί στην συνθήκη x < y. Η συνθήκη αυτή αξιολογείται ως True, επομένως η μεταβλητή z παίρνει την τιμή True. Το αποτέλεσμα της εντολής print είναι True καθώς αυτή είναι η τιμή της μεταβλητής z.
Το αποτέλεσμα του type() για το παραπάνω πρόγραμμα θα είναι:
<class 'bool'>
Το bytes είναι ένας τύπος δεδομένων στην Python που χρησιμοποιείται για την αποθήκευση δυαδικών δεδομένων, όπως π.χ. αρχεία εικόνων, ήχου και βίντεο. Ένα παράδειγμα bytes είναι το εξής:
b = b'Hello World' print(type(b))
Το αποτέλεσμα στην οθόνη θα είναι:
<class 'bytes'>
Το bytearray είναι ένας τύπος δεδομένων στην Python που παρέχει μια αλλαζόμενη, μεταβλητή ακολουθία από ακέραιους αριθμούς από 0 έως 255. Το παρακάτω είναι ένα παράδειγμα bytearray:
my_bytes = bytearray(b"Hello World") print(my_bytes) print(type(my_bytes))
Το αποτέλεσμα της εντολής type() στην οθόνη θα είναι:
bytearray(b'Hello World') <class 'bytearray'>
Το memoryview είναι ένας ειδικός τύπος δεδομένων στην Python που επιτρέπει την προβολή δεδομένων ως ακολουθία από byte χωρίς την ανάγκη αντιγραφής τους στη μνήμη. Αυτό μπορεί να είναι χρήσιμο σε περιπτώσεις που έχουμε μεγάλα δεδομένα και θέλουμε να τα επεξεργαστούμε χωρίς να αντιγράψουμε τα δεδομένα στη μνήμη πρώτα, οπότε η χρήση του memoryview μας επιτρέπει να εξοικονομήσουμε μνήμη και να βελτιώσουμε την απόδοση του κώδικα μας.
Ένα παράδειγμα χρήσης του memoryview είναι το εξής:
a = bytearray(b'hello') v = memoryview(a) print(v)
Η έξοδος του προγράμματος θα είναι η εξής:
<memory at 0x7f843b17c0e0>
Αυτό υποδηλώνει ότι η μεταβλητή v είναι ένα αντικείμενο του τύπου memoryview.
Ο τύπος NoneType αναφέρεται στο αντικείμενο None στην Python, το οποίο αντιπροσωπεύει την απουσία τιμής ή το “τίποτα”. Μπορεί να χρησιμοποιηθεί για να δηλώσει ότι ένα αντικείμενο δεν έχει καμία επιστρεφόμενη τιμή ή ότι μια μεταβλητή δεν έχει αρχικοποιηθεί ακόμη. Το αποτέλεσμα της εντολής type() για το αντικείμενο None είναι ο τύπος NoneType.
Παράδειγμα:
x = None print(type(x))
Το αποτέλεσμα στην οθόνη θα είναι:
<class 'NoneType'>