Μαθαίνοντας Python – Μέρος 3ο
Σε προηγούμενα βοηθήματα κάναμε την εισαγωγή στην Γλώσσα προγραμματισμού Python, και είδαμε κάποια βασικά προβλήματα που μπορεί να αντιμετωπήσουμε. Το σημερινό μας άρθρο συμπληρώνει την παρουσίαση των βασικών θεμάτων της γλώσσας Python και θα μας επιτρέψει, από την επόμενη φορά, να αρχίσουμε να σχεδιάζουμε τα πρώτα μας προγράμματα.
Προαπαιτούμενα
Δημιουργία ενός Python script (βλ. Μαθαίνοντας Python – Μέρος 1ο )
Εισαγωγή στην Python (βλ. Μαθαίνοντας Python – Μέρος 2ο)
Πριν ξεκινήσουμε…
… θα ήθελα να επισημάνω ένα – δύο πρακτικά ζητήματα.
Στη συνέχεια παρουσιάζεται ο τρόπος για να επιτευχθούν οι στόχοι που περιγράψαμε στην εισαγωγή. Θα παρατηρήσετε ότι το άρθρο ακολουθεί τη δομή:
Μικρή περιγραφή του τι θέλουμε να επιτύχουμε (+ επιπλέον σχόλια)
Παράδειγμα κώδικα
Στ ο τέλος του αρχείου θα βρείτε συνημμένο ένα python script που περιέχει συγκεντρωμένα όλα τα παραδείγματα.
Για να τα χρησιμοποιήσετε, αντιγράφετε το εκάστοτε παράδειγμα σε ένα νέο αρχείο python και το εκτελείτε (βλ. Μαθαίνοντας Python – Μέρος 1ο ). Τα παραδείγματα είναι φτιαγμένα με τέτοιον τρόπο ώστε να τυπώνουν τα αποτελέσματα στην οθόνη ώστε να μπορείτε να πιστοποιήσετε εύκολα τη λειτουργικότητά τους. Για διευκόλυνσή σας έχουμε χωρίσει τα παραδείγματα με σχόλια που δίνουν μια μικρή περιγραφή του τι επιχειρούμε κάθε φορά.
Καθίστε αναπαυτικά γιατί, θα πάρει λίγο χρόνο…
Συνένωση αλφαριθμητικών
Στην python μπορούμε να συνενώσουμε αλφαριθμητικά με 3 τρόπους.
- Τα αλφαριθμητικά σε παράθεση χωρισμένα με τον χαρακτήρα ‘+’
- Τα αλφαριθμητικά απλά σε παράθεση
- Με χρήση της συνάρτησης .strip()
Η πρώτη περίπτωση έχει καλυφθεί σε προηγούμενο άρθρο μας. Σας παραθέτουμε παραδείγματα για τις υπόλοιπες δύο:
print("Are you suggesting" " coconuts migrate?")
print('Are you suggesting'.strip() + ' coconuts migrate?')
Το αλφαριθμητικό ως πίνακας χαρακτήρων
Ένα αλφαριθμητικό στην Python μπορεί κανείς να το διαχειριστεί και ως πίνακα χαρακτήρων (λειτουργικότητα που παρέχεται και από άλλες γλώσσες όπως για παράδειγμα η C).
Για να καταλάβουμε λίγο καλύτερα γιατί ακριβώς μιλάμε αν έχουμε το αλφαριθμητικό “test” σαν πίνακας χαρακτήρων αυτό αναπαρίσταται ως:
0 | 1 | 2 | 3 |
t | e | s | t |
Δηλαδή αν η μεταβλητή μας που περιέχει το αλφαριθμητικό καλείται myString τότε δίνοντας στον διερμηνευτή της Python myString[0] θα πρέπει να μας επιστρέψει τον χαρακτήρα ‘t’.
Ας δούμε λίγο πιο αναλυτικά τι ενέργειες μας επιτρέπει η Python να εκτελέσουμε σε έναν πίνακα χαρακτήρων.
text = "Are you suggesting coconuts migrate?" text[8] text[0:3] text[4:7] text[:19] text[19:]
Δημιουργούμε το αλφαριθμητικό text. Εν συνέχεια, οι γραμμές κώδικα που σας δίνουμε έχουν τα εξής αποτελέσματα (κατά σειρά εμφάνισης):
- Επιστρέφεται ο χαρακτήρας που βρίσκεται στην θέση 8 (δηλαδή ο 9ος κατά σειρά χαρακτήρας του αλφαριθμητικού αφού η αρίθμηση των θέσεων ξεκινά από το 0)
- Επιστρέφονται οι χαρακτήρες από τη θέση 0 ως την 3
- Επιστρέφονται οι χαρακτήρες από τη θέση 4 ως την 7
- Επιστρέφονται οι χαρακτήρες από τη θέση 19 και πριν’
- Επιστρέφονται οι χαρακτήρες από τη θέση 19 και μετά
Εκτός από θετικούς δείκτες θέσεων μπορούμε να έχουμε και αρνητικούς
text = "Are you suggesting coconuts migrate?" text[-1] text[-2] text[-3:] text[:-10] text[-0]
Και πάλι κατά σειρά εμφάνισης:
- Επιστρέφεται ο τελευταίος χαρακτήρας
- Επιστρέφεται ο προ-τελευταίος χαρακτήρας
- Επιστρέφονται οι 3 τελευταίοι χαρακτήρες
- Επιστρέφονται οι χαρακτήρες από την δέκατη, από το τέλος, θέση και πριν
- Επιστρέφεται ο πρώτος χαρακτήρας [το -0 θεωρείται ίσο με το 0 ]
Μπορούμε να συνδυάσουμε την συνένωση αλφαριθμητικών με τους πίνακες χαρακτήρων ως εξής:
'Do ' + text[4:]
Η συγκεκριμένη γραμμή κώδικα συνενώνει το αλφαριθμητικό ‘Do’ με τους χαρακτήρες του αλφαριθμητικού της μεταβλητής text από την τέταρτη θέση και μετά.
Hacks πινάκων χαρακτήρων
Αν θεωρήσουμε το ίδιο αλφαριθμητικό
text = "Are you suggesting coconuts migrate?" text[1:2000] text[120:] text[5:4] text[-100:]
Κατά σειρά εμφάνισης:
- Παίρνουμε το κομμάτι του πίνακα χαρακτήρων στο οποίο υπάρχει πληροφορία
- Παίρνουμε “ “ (κενό χαρακτήρα)
- Παίρνουμε “ “ (κενό χαρακτήρα)
- Παίρνουμε το κομμάτι του πίνακα χαρακτήρων στο οποίο υπάρχει πληροφορία
Από τα παραπάνω συμπεραίνουμε δηλαδή πως όταν οι θέσεις που ζητούμε δεν υπάρχουν ή δεν έχουν πληροφορία η Python μας επιστρέφει έναν κενό χαρακτήρα.
ΠΡΟΣΟΧΗ: Αν ζητήσουμε τον χαρακτήρα μιας θέσης με αρνητικό δείκτη που βρίσκεται έξω από τα όρια του αλφαριθμητικού μας τότε η Python θα μας επιστρέψει error. Για παράδειγμα, για το αλφαριθμητικό Are you suggesting coconuts migrate? Η εντολή text[-50] θα προκαλέσει σφάλμα.
Εισαγωγή Unicode χαρακτήρα
Η εισαγωγή Unicode χαρακτήρων γίνεται στην Python με τη χρήση του \u ακολουθούμενο από τον κωδικό του χαρακτήρα. Για παράδειγμα:
print( "Are\u0020you suggesting..." )
Θα εμφανίσει στην κονσόλα μας:
Are you suggesting…
Μεταφράζοντας το \u0020 ως τον κενό χαρακτήρα.
Το μήκος ενός αλφαριθμητικού
Το μήκος ενός αλφαριθμητικού μπορούμε να το ανακτήσουμε χρησιμοποιώντας την συνάρτηση len() όπως φαίνεται παρακάτω:
len(text)
Αν εκτελείτε τις εντολές του βοηθητικού μας αρχείου καθώς διαβάζεται τον οδηγό και στο συγκεκριμένο σημείο η Python σας επέστρεψε 36 τότε γνωρίζετε πλέον πώς να διαχειρίζεστε αλφαριθμητικά και σας αξίζει μια κούπα του αγαπημένου σας καφέ ή τσαγιού.
Λίστες
Οι λίστες είναι μια πολύ ενδιαφέρουσα και σημαντική δομή που προσφέρει η Python. Σαν δομή δεδομένου συναντάται σε πολλές γλώσσες προγραμματισμού και αποτελεί, όπως διαισθητικά καταλαβαίνει κανείς μια συλλογή πραγμάτων.
Στην Python δηλώνουμε μια λίστα περικλείοντας τα αντικείμενά της σε τετραγωνικές αγκύλες [ … , … , … , ]. Δεν είναι απαραίτητο να δηλώσουμε εξ’ αρχής όλα τα αντικείμενα που θέλουμε να περιλαμβάνει η λίστα μας. Επίσης, λόγω του ότι στην Python δεν δηλώνουμε τύπους δεδομένων οι λίστες μας μπορούν να αποτελούνται από αντικείμενα διαφορετικά μεταξύ τους (ακεραίους, πραγματικούς, αλφαριθμητικά, κ.ο.κ.).
Ας δούμε μερικά παραδείγματα:
Έστω η λίστα myList:
myList = ['monty', 'python', 999, 222] myList myList[0] myList[-1] myList[1:-1]
Κατά σειρά οι παραπάνω εντολές έχουν τα εξής αποτελέσματα:
- Εμφανίζεται η λίστα όπως έχει δηλωθεί
- Εμφανίζεται το πρώτο στοιχείο της λίστας
- Εμφανίζεται το τελευταίο στοιχείο της λίστας
- Εμφανίζονται τα στοιχεία της λίστας μεταξύ του πρώτου και του τελευταίου
Εισαγωγή στοιχείου σε λίστα
myList[1:1] = ['foo', 'foo2']
Η παραπάνω εντολή εισάγει τα στοιχεία ‘foo’ και ‘foo2’ στην δεύτερη και τρίτη θέση της λίστας που δηλώσαμε στο προηγούμενο ακριβώς παράδειγμα.
Εν γένει:
myList[X] = κάποιος τύπος δεδομένου
Θα εισάγει το περιεχόμενο της μεταβλητής Κάποιος τύπος δεδομένου στην θέση Χ της λίστας myList
Διαγραφή στοιχείου από λίστα
myList[0:2] = []
Η παραπάνω εντολή θα διαγράψει τα τρία πρώτα στοιχεία της λίστας myList
Εν γένει:
myList[X] = []
Θα διαγράψει το στοιχείο που βρίσκεται στη θέση Χ της λίστας myList
Εισαγωγή ενός αντιγράφου της λίστας στην αρχή της
myList[:0] = myList
Η παραπάνω εντολή θα δημιουργήσει ένα αντίγραφο της λίστας myList στην αρχή της
Καθαρισμός της λίστας
myList[:] = []
Η παραπάνω εντολή θα καθαρίσει την λίστα myList από τα περιεχόμενά της
Μήκος μιας λίστας
Η συνάρτηση len() που είδαμε παραπάνω να χρησιμοποιείται για να μας δώσει το μήκος ενός πίνακα χαρακτήρων χρησιμοποιείται και στις λίστες με τον ίδιο ακριβώς σκοπό
Επομένως η εντολή:
Len(myList)
Μας επιστρέφει τον αριθμό των στοιχείων που περιέχει η λίστα myList
Εμφωλευμένες λίστες
Η Python υποστηρίζει τον όρο της εμφωλευμένης λίστας δηλαδή μια λίστα μέσα σε μια άλλη λίστα.
myNestedList = ["Holy", "Grail"] myList = [myNestedList, "by", "Monty", "Python"] print( myList )
Στον παραπάνω κώδικα η λίστα myNestedList αποτελεί στοιχείο της λίστας myList και επομένως αν εκτελέσουμε το συγκεκριμένο τμήμα κώδικα το αποτέλεσμα που θα πάρουμε θα είναι:
[['Holy', 'Grail'], 'by', 'Monty', 'Python']
Προσθήκη στοιχείου στο τέλος της λίστας με χρήση της append()
Εκτελώντας
myList.append(Χ)
το στοιχείο Χ προστίθεται στο τέλος της τρέχουσας μορφής της λίστας myList.
Σε αυτό το σημείο ο σημερινός μας οδηγός έφθασε στο τέλος του και πλέον έχετε γνωρίσει τα βασικά στοιχεία της γλώσσας Python. Στον επόμενο οδηγό μας θα αρχίσουμε να σχεδιάζουμε μικρά python scripts που θα μας επιτρέψουν να εξερευνήσουμε την γλώσσα Python σε μεγαλύτερο βάθος.
Ως τότε όμως, να είστε καλά και να προσέχετε τον εαυτό σας.
Μπορείτε να κατεβάσετε τα αρχεία του βοηθήματος εδώ




στο αλφαριθμητικο ως πίνακας εχεις παραλήψει να βαλεις το print πριν απο καθε text με αποτελεσμα να μην εμφανιζονται στη οθονη οταν εκτελειται το προγραμμα Ευχαριστώ!