Ενότητα 3 - Τμήμα 2 - Λίστες
Ιστότοπος: | ΕΛ/ΛΑΚ Moodle |
Μάθημα: | Εργαστήριο Python |
Βιβλίο: | Ενότητα 3 - Τμήμα 2 - Λίστες |
Εκτυπώθηκε από: | Guest user |
Ημερομηνία: | Παρασκευή, 22 Νοεμβρίου 2024, 3:38 AM |
Περιγραφή
Μετά την ολοκλήρωση αυτής της ενότητας οι φοιτητές θα μπορούν να:
- εντοπίζουν τους διάφορους τύπους δεδομένων
- αναγνωρίζουν λίστες
- δημιουργούν λιστών
- χρησιμοποιούν τις μεθόδους λίστας
- χρησιμοποιήστε την συνάρτηση random
3.2.1 - Τύποι δεδομένων
Μέχρι στιγμής έχουμε δει τρεις τύπους δεδομένων:
- ακέραιος
- πραγματικός
- χαρακτήρες
και μάθαμε ότι μπορούμε να εμφανίσουμε τον τύπο των δεδομένων με τη συνάρτηση type.
Μπορείτε να δοκιμάσετε τα παρακάτω για να θυμηθείτε τους τύπους δεδομένων:
>>> type(3)
>>> type(3.14)
>>> type("Hello")
έχουμε μιλήσει επίσης για συνθήκες και ξέρουμε ότι μία συνθήκη μπορεί να είναι αληθής (True) ή ψευδής (False). Δοκιμάστε τον ακόλουθο κώδικα:
>>> type(True) # χωρίς εισαγωγικά
>>> type(False) # χωρίς εισαγωγικά
Αυτός είναι ένας ακόμα τύπος δεδομένων που ονομάζεται Λογικός (Boolean) και μπορεί λάβει ως τιμές μόνο μία από τις δύο αυτές λέξεις.
Η λίστα είναι ένας ακόμα τύπος δεδομένων. Έχουμε δημιουργήσει λίστες με τη χρήση της εντολής range. Έτσι δημιουργήσαμε λίστες από αριθμούς.
>>> list(range(1,11))
αλλά μία λίστα μπορεί να περιέχει πολλαπλά δεδομένα. Ας δοκιμάσουμε ένα παράδειγμα με αριθμούς:
>>> my_list = [1,33,18]
>>> print (my_list) # αυτή είναι μία λίστα με αριθμούς
3.2.2 - Λίστες
Τι πρέπει να κάνουμε αν θέλουμε να δημιουργήσουμε μία λίστα αγορών; Αντιγράψτε την ακόλουθη εντολή και δοκιμάστε τη.
>>> my_shopping_list = ["apples","bananas","carrots"]
>>> print(my_shopping_list)
Τα αντικείμενα - στοιχεία στη λίστα είναι αριθμημένα (δείκτης) αρχίζοντας από το 0 (όπως είπαμε η αρίθμηση στον προγραμματισμό συνήθως αρχίζει από το μηδέν).
Έτσι το στοιχείο μηδέν στη λίστα my_shopping_list είναι το "apples"
το στοιχείο 1 είναι "bananas" και το 2 είναι "carrots"
Δοκιμάστε το παρακάτω:
>>> print(my_shopping_list[0]) # στην εντολή print χρησμιποιούμε παρένθεση () και στις λίστες αγκύλες [])
>>> print(my_shopping_list[1])
>>> print(my_shopping_list[2])
>>> print(my_shopping_list[3])
Στο τελευταίο παράδειγμα υπήρχε ένα λάθος:
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
IndexError: list index out of range
γιατί η λίστα myshoppinglist δεν έχει κάποιο στοιχείο με δείκτη 3
Μπορούμε να αλλάξουμε ένα στοιχείο σε μία λίστα :
>>> my_shopping_list[0] = "apricots"
>>> print(my_shopping_list)
και μπορούμε να περάσουμε με μία επανάληψη από όλη τη λίστα. Αντιγράψτε τον ακόλουθο κώδικα στο Thonny:
my_friends = ["Jim", "John", "Jack", "Jane"]
for item in my_friends:
print (item)
Μπορούμε να δούμε τον αριθμό των στοιχείων που έχει μία λίστα με την εντολή len.
>>> len(my_friends)
και μπορούμε να προσθέσουμε στοιχεία σε μία λίστα:
>>> my_friends.append("Joe")
>>> print(my_friends)
Η λίστα μας έχει 5 στοιχεία τώρα. Ελέγξτε τον αριθμό των στοιχείων της με την εντολή len.
3.2.3 - Μέθοδοι για λίστες
Οι λίστες είναι αντικείμενα που μπορούν να μεταβάλλονται. Αυτό σημαίνει ότι μπορούμε να αλλάξουμε μία λίστα, να προσθέσουμε ή να αφαιρέσουμε στοιχεία, να βρούμε το μέγιστο ή το ελάχιστο ή ακόμα και να προσθέσουμε στοιχεία από μία λίστα σε μία άλλη.
Μπορείτε να μάθετε περισσότερα για τις λίστες εδώ https://docs.python.org/3/tutorial/introduction.html#lists
και μπορείτε να βρείτε κάποιες από τις μεθόδους για λίστες εδώ https://docs.python.org/3/tutorial/datastructures.html#more-on-lists
Θα αρχίσουμε δημιουργώντας μία άδεια λίστα:
>>> new_list=[]
Και μετά μπορούμε να προσθέσουμε στοιχεία με τη χρήση της εντολής append:
>>> new_list.append(13)
και μπορούμε να προσθέσουμε ένα εύρος αριθμών:
>>> for i in range(1,21):
new_list.append(i)
Μπορούμε να δούμε τη λίστα και τα περιεχόμενα της στο παράθυρο με τις μεταβλητές του Thonny. Μπορούμε επίσης να δούμε τη λίστα με την εντολή:
>>> new_list
Αν θέλουμε να μετρήσουμε το πόσες φορές υπάρχει ένα στοιχείο στη λίστα μπορούμε να το κάνουμε με τη μέθοδο count :
>>> new_list.count(13)
Αν επιθυμούμε να αφαιρέσουμε ένα στοιχείο μπορούμε να χρησιμοποιήσουμε τη μέθοδο remove για να αφαιρέσουμε από τη λίστα το στοιχείο την πρώτη φορά που αυτό εμφανίζεται στη λίστα:
>>> new_list.remove(10)
>>> new_list.remove(13) # αφαιρεί μόνο το πρώτο 13
Μπορούμε να ταξινομήσουμε τη λίστα σε κανονική (αύξουσα) σειρά:
>>> new_list.sort()
και μπορούμε να την ταξινομήσουμε σε αντίστροφη (φθίνουσα) σειρά:
>>> new_list.reverse()
Μπορούμε επίσης να βρούμε τη θέση ενός στοιχείου:
>>> new_list.index(18)
Τέλος μπορούμε να βρούμε το ελάχιστο και το μέγιστο μίας λίστας:
>>> max(new_list)
>>> min(new_list)
και μπορούμε να δούμε το άθροισμα των στοιχείων της λίστας:
>>> sum(new_list)
και πολλά ακόμα που μπορείτε να δείτε στους συνδέσμους που αναφέραμε πιο πάνω.
3.2.4 - Υπολογισμός του αθροίσματος των στοιχείων μίας λίστας
Λοιπόν, μπορούμε να προσθέσουμε όλα τα στοιχεία μίας λίστας με τη χρήση της εντολής sum. Αυτό είναι πολύ εύκολο, αλλά ας σκεφτούμε πως μπορούμε να κάνουμε το ίδιο γράφοντας το δικό μας κώδικα.
Αντιγράψτε τον παρακάτω κώδικα στο Thonny και αποθηκεύστε τον με το όνομα sumlist:
# Add items of a list
my_list = [5, 76, 8, 5, 3, 3, 56, 5, 23]
# Initial Sum should be zero
list_total = 0
# Loop from 0 up to the number of elements
# in the array:
for i in range(len(my_list)):
# Add element 0, next 1, then 2, etc.
list_total += my_list[i]
# Print the result
print(list_total)
Κοιτάξτε λίγο καλύτερα την εντολή range(len(my_list)). Τι νομίζετε ότι κάνει;
Μπορούμε να αλλάξουμε τον κώδικα με αυτόν που ακολουθεί. Αντιγράψτε και επικολλήστε τον στο Thonny και αποθηκεύστε τον ως sumlist2:
# Add items of a list
my_list = [5, 76, 8, 5, 3, 3, 56, 5, 23]
# Initial Sum should be zero
list_total = 0
# Loop through array, copying each item in the array into
# the Variable named item.
for item in my_list:
# Add each item
list_total += item
# Print the result
print(list_total)
Προσπαθήστε να βρείτε τις διαφορές μεταξύ των των δύο εκδοχών κώδικα που είδατε παραπάνω.
Ως άσκηση γράψτε ένα κώδικα ο οποίος θα δημιουργεί μία λίστα με όλους τους ακεραίους από το 11 μέχρι και το 91 και μετά υπολογίστε το άθροισμα τους. Πρέπει να βρείτε 4131
Βήματα
- δημιουργήστε μία άδεια λίστα με οποιοδήποτε όνομα (π.χ. new_list)
- με μία επανάληψη for προσθέστε στη λίστα (append) τους αριθμούς από το 11 μέχρι και το 91
- δημιουργήστε μία μεταβλητή με όνομα total για να αθροίσετε τους αριθμούς και αρχικοποιήστε την σε 0
- με μία νέα επανάληψη με for προσθέστε όλα τα αντικείμενα της λίστας στη μεταβλητή total
Μπορείτε να δείτε τη λύση εδώ.
3.2.5 - Τυχαίοι αριθμοί - Random
Η Random είναι μία συνάρτηση που παράγει τυχαίους αριθμούς. Δεν ανήκει στον πυρήνα της Python αλλά σε μία βιβλιοθήκη (τη βιβλιοθήκη random). Για να μπορούμε να την χρησιμοποιήσουμε πρέπει πρώτα να συμπεριλάβουμε τη βιβλιοθήκη στο πρόγραμμα μας. Αντιγράψτε τον παρακάτω κώδικα στο Thonny και αποθηκεύστε το με όνομα "Randomize".
import random
print (random.randrange(1,50))
Αν θέλαμε να επιλέξουμε ένα τυχαίο αριθμό μεταξύ του 50 και του 80 ο κώδικας θα έπρεπε να είναι:
import random
print(random.randrange(50,81))
Μπορείτε να δείτε περισσότερα για τη συνάρτηση random και το πως να τη χρησιμοποιήσετε εδώ
Για να συνδυάσουμε λίστες με τη συνάρτηση random θα δημιουργήσουμε μία λίστα με 20 τυχαίους αριθμούς από το 1 μέχρι το 80 όπως στο παιχνίδι kino.
Αντιγράψτε τον ακόλουθο κώδικα στην περιοχή προγραμμάτων του Thonny και αποθηκεύστε το σαν "kino".
# This code creates and prints 20 kino numbers
import random # random is a library
kino_list=[] # create an empty list
for i in range(20):
kino_list.append(random.randrange(1,81)) # appends a random number to the list
print (kino_list)
Είναι οι αριθμοί στη λίστα μοναδικοί;
3.2.6 - Ας επεκταθούμε στην Random
Έχουμε την επιλογή να επιλέξουμε τυχαία ένα στοιχείο μίας λίστας. Αντιγράψτε τον παρακάτω κώδικα στο Thonny :
import random
my_list = ["rock", "paper", "scissors"]
random_index = random.randrange(3)
print(my_list[random_index])
Οι προηγούμενοι κώδικες που είδαμε παρήγαγαν ακέραιους αριθμούς. Αν επιθυμούμε ένα πραγματικό αριθμό τότε πρέπει να χρησιμοποιήσουμε τη μέθοδο random.
Ο παρακάτω κώδικας παράγει ένα τυχαίο αριθμό μεταξύ του 0 και του 1
import random
my_number = random.random()
και ο κώδικας που ακολουθεί παράγει ένα τυχαίο αριθμό μεταξύ του 10 και του 45
import random
my_number = random.random() * 35 + 10
Μπορείτε να δημιουργήσετε ένα τμήμα κώδικα που θα παράξει ένα τυχαίο αριθμό μεταξύ του 27 και του 42;