Στην Python, τιμές όπως το 7 (ένας ακέραιος αριθμός), το 4.1 (ένας αριθμός κινητής υποδιαστολής) και η λέξη ‘dog’ (μια συμβολοσειρά) θεωρούνται όλα αντικείμενα. Κάθε αντικείμενο στην Python έχει έναν τύπο και μια τιμή.
- Ο τύπος του αντικειμένου περιγράφει την κατηγορία των δεδομένων που αντιπροσωπεύει (π.χ., ακέραιος, αριθμός κινητής υποδιαστολής, συμβολοσειρά).
- Η τιμή του αντικειμένου είναι τα πραγματικά δεδομένα που αποθηκεύονται στο αντικείμενο.
Για παράδειγμα, όταν εκτελείτε τις παρακάτω εντολές σε ένα διερμηνέα Python (όπως το IPython), μπορείτε να δείτε τον τύπο του κάθε αντικειμένου:
type(7) # Επιστρέφει: <class 'int'> type(4.1) # Επιστρέφει: <class 'float'> type('dog') # Επιστρέφει: <class 'str'>
Εδώ, η τιμή 7
είναι τύπου int
(ακέραιος), η τιμή 4.1
είναι τύπου float
(αριθμός κινητής υποδιαστολής) και η τιμή 'dog'
είναι τύπου str
(συμβολοσειρά).
Στην Python, η τυποποίηση είναι δυναμική, που σημαίνει ότι δεν χρειάζεται να δηλώσετε τον τύπο μιας μεταβλητής όταν την δημιουργείτε. Η Python αυτόματα αναγνωρίζει και αποδίδει τύπους στα αντικείμενα κατά τον χρόνο εκτέλεσης.
Οι Μεταβλητές Αναφέρονται σε Αντικείμενα
Στην Python, όταν αναθέτετε ένα αντικείμενο σε μια μεταβλητή, αυτό συνδέει (δένει) το όνομα της μεταβλητής με το αντικείμενο. Αυτό σημαίνει ότι η μεταβλητή γίνεται μια αναφορά στο αντικείμενο και μπορείτε να χρησιμοποιήσετε τη μεταβλητή στον κώδικά σας για να αποκτήσετε πρόσβαση στην τιμή του αντικειμένου.
Για παράδειγμα:
# Δημιουργία ενός αντικειμένου ακέραιου αριθμού και ανάθεσή του σε μια μεταβλητή number = 7 # Χρήση της μεταβλητής για πρόσβαση στην τιμή του αντικειμένου print(number) # Εκτυπώνει: 7
Σε αυτό το παράδειγμα, η τιμή 7
(ένα αντικείμενο τύπου int
) ανατίθεται στη μεταβλητή number
. Η μεταβλητή number
αναφέρεται τώρα στο αντικείμενο 7
. Όταν χρησιμοποιούμε την εντολή print(number)
, εκτυπώνεται η τιμή του αντικειμένου στο οποίο αναφέρεται η μεταβλητή, δηλαδή το 7
.
Αυτός ο τρόπος αντιστοίχισης των μεταβλητών με τα αντικείμενα είναι ένας βασικός πυλώνας της δυναμικής τυποποίησης της Python, καθώς επιτρέπει την ευέλικτη και δυναμική διαχείριση των δεδομένων στον κώδικα.
Ένα παράδειγμα όπου ανατίθενται αντικείμενα σε μεταβλητές και στη συνέχεια γίνονται πράξεις με αυτές τις μεταβλητές:
# Δημιουργία δύο αντικειμένων ακεραίων αριθμών και ανάθεση σε μεταβλητές number1 = 10 number2 = 5 # Πρόσθεση των δύο αριθμών sum = number1 + number2 # Εκτύπωση του αποτελέσματος print("The sum is:", sum) # Εκτυπώνει: The sum is: 15 # Πολλαπλασιασμός των δύο αριθμών product = number1 * number2 # Εκτύπωση του αποτελέσματος print("The product is:", product) # Εκτυπώνει: The product is: 50
Σε αυτό το παράδειγμα, δημιουργούμε δύο ακέραιες τιμές 10
και 5
και τις ανατίθεται στις μεταβλητές number1
και number2
αντίστοιχα. Στη συνέχεια, εκτελούμε αριθμητικές πράξεις (πρόσθεση και πολλαπλασιασμός) με αυτές τις μεταβλητές και εκτυπώνουμε τα αποτελέσμα
Δυναμική Τυποποίηση
Η Python χρησιμοποιεί δυναμική τυποποίηση, δηλαδή καθορίζει τον τύπο του αντικειμένου σε μια μεταβλητή κατά την εκτέλεση του κώδικά σας. Μπορούμε να το δείξουμε αυτό επαναδεσμεύοντας τη μεταβλητή x
σε διάφορα αντικείμενα και ελέγχοντας τους τύπους τους:
x = 7 # Η μεταβλητή x αναφέρεται τώρα σε έναν ακέραιο print(type(x)) # Εκτυπώνει <class 'int'> x = "Hello" # Η μεταβλητή x αναφέρεται τώρα σε μια συμβολοσειρά print(type(x)) # Εκτυπώνει <class 'str'> x = [1, 2, 3] # Η μεταβλητή x αναφέρεται τώρα σε μια λίστα print(type(x)) # Εκτυπώνει <class 'list'>
Αυτό δείχνει ότι η Python αναγνωρίζει αυτόματα τον τύπο της μεταβλητής x
ανάλογα με το αντικείμενο στο οποίο αναφέρεται κατά την εκτέλεση του κώδικα.
Η συλλογή σκουπιδιών (garbage collection)
Η συλλογή σκουπιδιών (garbage collection) είναι διαδικασία που χρησιμοποιείται στην προγραμματισμό και τη διαχείριση μνήμης για να απελευθερώνει αυτόματα τη μνήμη που καταλαμβάνεται από αντικείμενα ή δομές δεδομένων που δεν χρησιμοποιούνται πλέον ή δεν είναι προσβάσιμα από το πρόγραμμα. Σε γλώσσες προγραμματισμού με συλλογή σκουπιδιών, όπως η Python, η Java και η C#, το περιβάλλον εκτέλεσης αναγνωρίζει περιοδικά και απελευθερώνει τη μνήμη που δεν απαιτείται πλέον, επιτρέποντάς τη χρήση της για άλλους σκοπούς.
Το πως λειτουργεί συνήθως η συλλογή σκουπιδιών:
- Μέτρηση Αναφορών: Ένα κοινό προσέγγιση είναι η μέτρηση αναφορών, όπου κάθε αντικείμενο κρατάει τον αριθμό των αναφορών που αναφέρονται σε αυτό. Όταν ο αριθμός των αναφορών πέσει στο μηδέν, πράγμα που σημαίνει ότι δεν υπάρχουν άλλες αναφορές στο αντικείμενο, αυτό γίνεται επιλέξιμο για συλλογή σκουπιδιών.
- Σήμανση και Καθάρισμα: Σε μια άλλη κοινή τεχνική που ονομάζεται “σήμανση και καθάρισμα,” ο συλλέκτης σκουπιδιών περιηγείται στη μνήμη του προγράμματος, ξεκινώντας από γνωστά αντικείμενα ρίζας (π.χ. γλοβάλ μεταβλητές ή αντικείμενα στο σωρό) και επισημαίνει όλα τα αντικείμενα που είναι ακόμα προσβάσιμα. Στη συνέχεια, καθαρίζει τη μνήμη, απελευθερώνοντας την από αντικείμενα που δεν έχουν επισημανθεί (δηλαδή που δεν είναι προσβάσιμα).
- Συλλογή Σκουπιδιών με Γενεές: Σε ορισμένους συλλέκτες σκουπιδιών, τα αντικείμενα χωρίζονται σε διάφορες γενεές ανάλογα με την ηλικία τους. Τα νέα αντικείμενα δεσμεύονται σε μια νεαρή γενιά, ενώ τα παλαιότερα αντικείμενα που επιβιώνουν πολλές φορές στις συλλογές προωθούνται σε παλαιότερες γενεές. Αυτό επιτρέπει αποδοτικότερη συλλογή, διότι τα περισσότερα αντικείμενα “πεθαίνουν” σε νεαρές γενεές.
Η συλλογή σκουπιδιών βοηθά τους προγραμματιστές να αποφύγουν διαρροές μνήμης και σφάλματα στη χειροκίνητη διαχείριση μνήμης, τα οποία μπορούν να αποτελέσουν συνήθη αιτία σφαλμάτων στα προγράμματα. Επίσης, μειώνει το φορτίο στους προγραμματιστές, καθώς διαχειρίζεται αυτόματα τη μνήμη, επιτρέποντάς τους να επικεντρωθούν στην συγγραφή της λογικής της εφαρμογής αντί του καθαρισμού της μνήμης.
Εισαγωγή στην Επιστήμη των Δεδομένων: Βασική Περιγραφική Στατιστική
Στον χώρο της επιστήμης των δεδομένων, η στατιστική χρησιμοποιείται συχνά για να περιγράψει και να συνοψίσει τα δεδομένα. Στο πλαίσιο αυτό, εισάγουμε αρκετές περιγραφικές στατιστικές, συμπεριλαμβανομένων των εξής:
- Ελάχιστο: Είναι η μικρότερη τιμή σε μια συλλογή δεδομένων.
- Μέγιστο: Είναι η μεγαλύτερη τιμή σε μια συλλογή δεδομένων.
- Εύρος: Είναι η διαφορά ανάμεσα στην μικρότερη και μεγαλύτερη τιμή σε μια συλλογή δεδομένων.
- Πλήθος: Είναι ο αριθμός των τιμών που περιέχει μια συλλογή δεδομένων.
- Άθροισμα: Είναι το συνολικό άθροισμα των τιμών σε μια συλλογή δεδομένων.
Στο επόμενο κεφάλαιο, θα εξετάσουμε τον τρόπο υπολογισμού του πλήθους και του συνόλου των τιμών. Οι μετρήσεις διάσπασης (που αποκαλούνται επίσης μετρήσεις διακύμανσης) όπως το εύρος, βοηθούν στον προσδιορισμό του βαθμού διασποράς των τιμών. Άλλες μετρήσεις διάσπασης που θα παρουσιάσουμε σε μετέπειτα κεφάλαια περιλαμβάνουν τη διακύμανση και την τυπική απόκλιση.
Υπολογισμός του Ελάχιστου από Τρεις Τιμές
Αρχικά, ας εξετάσουμε πώς μπορούμε να προσδιορίσουμε το ελάχιστο από τρεις τιμές χειροκίνητα. Το παρακάτω σενάριο ζητά τρεις τιμές από τον χρήστη, χρησιμοποιεί δηλώσεις if για να προσδιορίσει την ελάχιστη τιμή και στη συνέχεια την εμφανίζει.
Βεβαιωθείτε ότι εκτελείτε τον κώδικα Python σε ένα περιβάλλον προγραμματισμού ή σε μια διαδικτυακή πλατφόρμα Python. Αφού εκτελέσετε τον κώδικα που παρέχω παρακάτω, μπορείτε να εισάγετε τρεις τιμές και θα εμφανιστεί το ελάχιστο από αυτές. Εδώ είναι μερικά παραδείγματα εκτέλεσης:
Παράδειγμα 1:
Enter the first value: 10 Enter the second value: 5 Enter the third value: 8 The minimum of the three values is: 5.0
Παράδειγμα 2:
Enter the first value: 3.14 Enter the second value: 2.71 Enter the third value: 2.99 The minimum of the three values is: 2.71
Παράδειγμα 3:
Enter the first value: -5 Enter the second value: -3 Enter the third value: -7 The minimum of the three values is: -7.0
Είσαστε ελεύθεροι να εισάγετε οποιεσδήποτε τιμές επιθυμείτε και το πρόγραμμα θα επιστρέψει το ελάχιστο από αυτές.
# Ζητά τρεις τιμές από τον χρήστη value1 = float(input("Enter the first value: ")) value2 = float(input("Enter the second value: ")) value3 = float(input("Enter the third value: ")) # Προσδιορίζει το ελάχιστο minimum = value1 if value2 < minimum: minimum = value2 if value3 < minimum: minimum = value3 # Εμφανίζει το ελάχιστο print("The minimum of the three values is:", minimum)
Αυτό το σενάριο ζητά τρεις τιμές από τον χρήστη, στη συνέχεια χρησιμοποιεί δηλώσεις if για να συγκρίνει τις τιμές και να προσδιορίσει το ελάχιστο από αυτές. Τέλος, εμφανίζει το ελάχιστο.
Υπολογισμός Ελάχιστου και Μέγιστου με τις Ενσωματωμένες Συναρτήσεις min και max
Στην Python, υπάρχουν ενσωματωμένες συναρτήσεις min
και max
που χρησιμοποιούνται για τον υπολογισμό του ελάχιστου και του μέγιστου αντίστοιχα από ένα σύνολο τιμών.
Εδώ είναι πώς μπορείτε να χρησιμοποιήσετε αυτές τις συναρτήσεις:
# Create a list of values values = [10, 5, 8, 15, 20] # Calculate the minimum using the min function minimum = min(values) # Calculate the maximum using the max function maximum = max(values) # Print the results print("The minimum is:", minimum) print("The maximum is:", maximum)
Στο παραπάνω παράδειγμα, δημιουργούμε μια λίστα values
που περιέχει ορισμένες τιμές. Στη συνέχεια, χρησιμοποιούμε τις συναρτήσεις min
και max
για να υπολογίσουμε το ελάχιστο και το μέγιστο των τιμών αντίστοιχα και τα εκτυπώνουμε.
Τα αποτελέσματα θα είναι:
The minimum is: 5 The maximum is: 20
Υπολογισμός της Εύρους ενός Συνόλου Τιμών
Η εύρος των τιμών είναι απλά το ελάχιστο μέχρι το μέγιστο εύρος τιμών. Για παράδειγμα, αν έχουμε μια συλλογή τιμών που κυμαίνονται από 12 έως 36, το εύρος είναι από 12 έως 36. Πολλές εφαρμογές στην επιστήμη των δεδομένων απαιτούν την κατανόηση των χαρακτηριστικών των δεδομένων σας. Η περιγραφική στατιστική είναι ένα σημαντικό κομμάτι αυτής της διαδικασίας και σας βοηθά να κατανοήσετε το πώς είναι διανεμημένες οι τιμές σας. Για παράδειγμα, αν έχετε μια συλλογή 100 αριθμών που κυμαίνονται από το 12 έως το 36, αυτοί οι αριθμοί μπορεί να είναι κατανεμημένοι ομοιόμορφα σε αυτό το εύρος. Αντίθετα, μπορείτε να έχετε κατανεμημένες τιμές με πυκνές συγκεντρώσεις, όπως για παράδειγμα 99 τιμές του 12 και μία τιμή του 36 ή αντίστροφα, μία τιμή του 12 και 99 τιμές του 36.