3ο Παράδειγμα
Εχετε μάθει πως μπορείτε να δίνετε ένα όνομα ως τιμή σε μια μεταβλητή ή έναν αριθμό όπως
name = "Maria"
age = 13
Φανταστείτε ότι έχετε μια ομάδα 3 ατόμων και η καθηγήτριά σας σας είπε ότι έπρεπε να γράψετε ένα πρόγραμμα για να αποθηκεύσετε όλες τις ηλικίες τους και να βρείτε τη μέση ηλικία τους. Ας υποθέσουμε ότι οι ηλικίες τους είναι 8, 13 και 25. Πώς θα το κάνατε;
Λοιπόν, μπορείτε να δοκιμάσετε κάτι σαν αυτό:
person1_age = 8
person2_age = 13
person3_age = 25
average_age = (person1_age+person2_age+person3_age)/3
print("average age is ", average_age)
Αυτό λειτουργεί, αλλά… Την επόμενη μέρα έρχεται η καθηγήτριά σας και σας λέει ότι κάποιος άλλος έχει ενταχθεί και τώρα πρέπει να συμπεριλάβετε την ηλικία του (17) στο πρόγραμμά σας. Πως το κανετε?
Θα μπορούσε να είναι έτσι:
person1_age = 8
person2_age = 13
person3_age = 25
person4_age = 17
average_age = (person1_age+person2_age+person3_age+person4_age)/4
print("average age is ", average_age)
Για να προσθέσετε ένα άτομο επιπλέον με την ηλικία του, στον υπολογισμό σας, κάνατε τρεις προσθήκες.
Προσθέσατε μια γραμμή: person4_age = 17 για να αποθηκεύσετε την ηλικία.
Στη συνέχεια, αλλάξατε τη γραμμή μέσης ηλικίας για να προσθέσετε αυτή τη νέα μεταβλητή στον υπολογισμό και επίσης πρέπει να παρακολουθείτε τον αριθμό των ατόμων και να αλλάξετε τη διαίρεση με το 3 σε διαιρούμενο με το 4.
Την επόμενη μέρα έρχεται ένα άλλο άτομο, ηλικίας 11 ετών, και εσείς χρησιμοποιείτε τον ίδιο τρόπο αντιμετώπισης του προβλήματος. Καταλήγετε με αυτόν τον κώδικα:
person1_age = 8
person2_age = 13
person3_age = 25
person4_age = 17
person5_age = 11
average_age = (person1_age+person2_age+person3_age+person4_age+person5_age)/5
print("average age is ", average_age)
Ελπίζω ότι φοβάστε να φτάσουν άλλοι άνθρωποι – αλλά μπορεί να γίνει πολύ χειρότερο χωρίς περισσότερους ανθρώπους! Φανταστείτε να σας ζητηθεί να γράψετε κώδικα για να εκτυπώσετε τις ηλικίες με σειρά από τη μικρότερη στη μεγαλύτερη. Ο μόνος τρόπος που μπορείτε να το κάνετε αυτό με αυτόν τον κώδικα είναι να ταξινομήσετε μόνοι σας τις ηλικίες και στη συνέχεια να εκτυπώσετε τις μεταβλητές με τη σωστή σειρά. Τι νόημα έχει να μάθεις Python αν πρέπει να κάνεις τους υπολογισμούς μόνος σου;
Ευτυχώς, η Python έχει έναν τρόπο αποθήκευσης αυτών των τιμών που καθιστά εύκολη την εκτέλεση τέτοιων πραγμάτων. Λέγεται λίστα .
Μπορείτε να δημιουργήσετε μια λίστα τιμών βάζοντας κόμμα μεταξύ κάθε ζεύγους τιμών και περιβάλλοντας ολόκληρη την παρτίδα σε αγκύλες [ ] . Για παράδειγμα, ας πούμε ότι οι τιμές σας είναι 1 και 4, θα δημιουργήσετε μια λίστα όπως αυτή:
>>> [1, 4]
[1, 4]
Ανάμεσά τους υπάρχει κόμμα και περιβάλλονται από αγκύλες [ ]. Μπορείτε να προσθέσετε περισσότερες καταχωρήσεις στη λίστα προσθέτοντας ένα κόμμα και στη συνέχεια τη νέα καταχώρηση:
>>> [1, 4, 8]
[1, 4, 8]
Μια λίστα μπορεί να είναι κενή – δεν περιέχει τιμές. Μοιάζει με αυτό:
>>> []
[]
Μια λίστα με μία μόνο τιμή μοιάζει με αυτό (χωρίς κόμματα):
>>> [1]
[1]
Ονομάζετε μια λίστα με τον ίδιο τρόπο που ονομάζετε οποιαδήποτε άλλη μεταβλητή:
>>> a_list = [1, 2, 3, 4]
Ετσι για τις ηλικίες που είχατε παραπάνω, μπορείτε να κάνετε μια λίστα όπως αυτή:
>>> ages = [8, 13, 25, 17, 11]
>>>
Στην Python οι λίστες μπορούν να ταξινομηθούν. Απλώς προσθέτετε το .sort( ) στο όνομα της λίστας και θα ταξινομηθεί. Σαν αυτό:
>>> ages.sort()
>>> ages
[8, 11, 13, 17, 25]
Η Python καλεί τον αριθμό των καταχωρήσεων σε μια λίστα με το μήκος της. Για να λάβετε αυτόν τον αριθμό, χρησιμοποιείτε τη εντολή len(). Σαν αυτό:
>>> len(ages)
5
Αυτό λέει ότι η λίστα που ονομάζεται age έχει 5 καταχωρήσεις (μετρήστε τις μόνοι σας για να επιβεβαιώσετε ότι είναι σωστή).
Μπορείτε να προσθέσετε όλες τις εγγραφές σε μια λίστα χρησιμοποιώντας τη δυνατότητα sum( ).
>>> sum(ages)
74
Έτσι, μπορείτε να απλοποιήσετε το πρόγραμμα του μέσου όρου ηλικίας ως εξής:
o, you can simplify your average age program above like this:
ages = [8, 13, 25, 17, 11]
print ("average age is ", sum(ages)/len(ages))
Φοβερο? Είναι σίγουρα πολύ πιο απλό. Ελέγξτε ότι λειτουργεί για οποιονδήποτε αριθμό ηλικιών προσθέτοντας και αφαιρώντας ηλικίες στη λίστα ηλικιών. Εάν η λίστα ηλικίας είναι κενή, θα σπάσετε τον κώδικα. Δοκιμάστε το και δείτε.
Μπορείτε επίσης να αντιμετωπίσετε την απαίτηση να τα βάλετε σε τάξη επίσης πολύ εύκολα:
ages = [8, 13, 25, 17, 11]
print ("average age is ", sum(ages)/len(ages))
ages.sort()
print ("ages in order are: ", ages)
Δοκιμάστε μονοι σας στο trinket