1404_book_u1u2u3

100
7/21/2019 1404_book_u1u2u3 http://slidepdf.com/reader/full/1404booku1u2u3 1/100  1 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Προγράμματα Συμπληρωματικής Εκπαίδευσης  Με τη  χρήση καινοτόμων  μεθόδων εξ  αποστάσεως εκπαίδευσης 1404 - ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PYTHON 

description

SADF

Transcript of 1404_book_u1u2u3

Page 1: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 1/100

1

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

Προγράμματα Συμπληρωματικής Εκπαίδευσης

Με τη χρήση καινοτόμων μεθόδων εξ αποστάσεως εκπαίδευσης

1404 - ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PYTHON

Page 2: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 2/100

2

© Copyright 2015, Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών, Π. Ε. Πετράκης.

Η έντυπη, ηλεκτρονική και γενικά κατά οποιοδήποτε τρόπο αναπαραγωγή, δημοσίευση

ή χρησιμοποίηση όλου ή μέρους του υλικού έργου αυτού, απαγορεύεται χωρίς την

έγγραφη έγκριση του κατόχου των πνευματικών δικαιωμάτων του έργου.

Page 3: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 3/100

3

Το παρόν έντυπο αποτελεί τμήμα του εκπαιδευτικού υλικού του μαθήματος “Εισαγωγή

στη Γλώσσα Προγραμματισμού Python”. Αποτελεί απαραίτητο συμπλήρωμα του

ηλεκτρονικού υλικού που βρίσκεται στην πλατφόρμα και αναπόσπαστο κομμάτι της

εκπαιδευτικής διαδικασίας.

Η πρώτη διδακτική ενότητα αποσκοπεί στην αρχική γνωριμία των εκπαιδευόμενων με τη

γλώσσα προγραμματισμού Python και το περιβάλλον εκτέλεσης σεναρίων και

ανάπτυξης εφαρμογών, καθώς επίσης και στην εξοικείωση των εκπαιδευόμενων με τη

γλώσσα και τη χρήση της για τη συγγραφή απλών βασικών προγραμμάτων και

σεναρίων. Για το λόγο αυτό παρουσιάζονται τα βασικά χαρακτηριστικά και οι

δυνατότητες της γλώσσας, στοιχεία από την εξέλιξή της και σύγκριση με εναλλακτικές

γλώσσες. Παρέχονται οδηγίες για την εγκατάσταση του βασικού περιβάλλοντος Python

στον υπολογιστή των εκπαιδευόμενων και την εξοικείωσή τους με το περιβάλλον

διαδραστικού διερμηνευτή και το ολοκληρωμένο περιβάλλον ανάπτυξης εφαρμογών

IDLE. Στη συνέχεια παρουσιάζονται σε συνοπτική μορφή τα βασικά στοιχεία της

γλώσσας με απλά παραδείγματα και βασικά παραδείγματα εντολών προς εκτέλεση

από τους εκπαιδευόμενους. Τέλος, παρέχονται στοιχεία για το περιβάλλον ανάπτυξης

μέσω υπηρεσιών υπολογιστικού νέφους και γενικές πληροφορίες για την κοινότητα και

την ανάπτυξη της γλώσσας.

Στη δεύτερη διδακτική ενότητα, οι εκπαιδευόμενοι θα εξοικιειωθούν με τις βασικές αρχές

κωδικοποίησης προγραμμάτων της Python, τη χρήση συμβολοσειρών, λιστών και

πλειάδων, καθώς επίσης και με τη συγγραφή απλών προγραμμάτων και σεναρίων σε

αυτά. Για το λόγο αυτό, παρουσιάζονται αναλυτικά τα βασικά στοιχεία με απλά

παραδείγματα προς εκτέλεση από τους εκπαιδευόμενους.

Στην τρίτη διδακτική ενότητα, οι εκπαιδευόμενοι θα γνωρίσουν τις βασικές αρχές και τη

χρήση λεξικών και δομών ελέγχου ροής, και θα εξοικειωθούν με τη συγγραφή απλών

προγραμμάτων και σεναρίων σε αυτά τα αντικείμενα. Για το λόγο αυτό

παρουσιάζονται αναλυτικά τα βασικά στοιχεία με απλά παραδείγματα προς εκτέλεση

από τους εκπαιδευόμενους.

Τη συγγραφή του συγκεκριμένου εκπαιδευτικού υλικού πραγματοποίησε ο κ .

Ρηγόπουλος Γιώργος, εξωτερικός συνεργάτης του Προγράμματος Συμπληρωματικής

εξ Αποστάσεως Εκπαίδευσης του Εθνικού και Καποδιστριακού Πανεπιστημίου Αθηνών.

Page 4: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 4/100

4

Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α

ΔΙΔΑΚΤΙΚΗ ΕΝΟΤΗΤΑ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ PYTHON ΚΑΙ ΤΑ ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΤΗΣ .................. 5

ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ................................................................................................. 7

ΥΠΟΕΝΟΤΗΤΑ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ PYTHON ........................................................................ 8

ΥΠΟΕΝΟΤΗΤΑ 2. ΕΓΚΑΤΑΣΤΑΣΗ ΤΗΣ PYTHON .................................................................. 18

ΥΠΟΕΝΟΤΗΤΑ 3. ΤΑ ΒΑΣΙΚΑ ΤΗΣ PYTHON ........................................................................ 26

ΥΠΟΕΝΟΤΗΤΑ 4. PYTHON ΣΤΟ ΔΙΑΔΙΚΤΥΟ ...................................................................... 35

ΣΥΝΟΨΗ .............................................................................................................................. 37

ΔΙΔΑΚΤΙΚΗ ΕΝΟΤΗΤΑ 2. ΒΑΣΙΚΕΣ ΑΡΧΕΣ – ΣΥΜΒΟΛΟΣΕΙΡΕΣ – ΛΙΣΤΕΣ – ΠΛΕΙΑΔΕΣ ............. 39

ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ............................................................................................... 41

ΥΠΟΕΝΟΤΗΤΑ 1. ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΤΗΣ PYTHON ................................................................ 42

ΥΠΟΕΝΟΤΗΤΑ 2. ΣΥΜΒΟΛΟΣΕΙΡΕΣ .................................................................................. 53

ΥΠΟΕΝΟΤΗΤΑ 3. ΛΙΣΤΕΣ .................................................................................................... 64

ΥΠΟΕΝΟΤΗΤΑ 4. ΠΛΕΙΑΔΕΣ .............................................................................................. 72

ΣΥΝΟΨΗ .............................................................................................................................. 75

ΔΙΔΑΚΤΙΚΗ ΕΝΟΤΗΤΑ 3. ΛΕΞΙΚΑ - ΈΛΕΓΧΟΣ ΡΟΗΣ ................................................................ 77

ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ............................................................................................... 79

ΥΠΟΕΝΟΤΗΤΑ 1. ΛΕΞΙΚΑ ................................................................................................... 80

ΥΠΟΕΝΟΤΗΤΑ 2. ΕΛΕΓΧΟΣ ΡΟΗΣ ..................................................................................... 90

ΣΥΝΟΨΗ .............................................................................................................................. 98

ΒΙΒΛΙΟΓΡΑΦΙΑ ................................................................................................................... 99

Page 5: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 5/100

5

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

Προγράμματα Συμπληρωματικής Εκπαίδευσης

Με τη χρήση καινοτόμων μεθόδων εξ αποστάσεως εκπαίδευσης

1404 - ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PYTHON

ΔΙΔΑΚΤΙΚΗ ΕΝΟΤΗΤΑ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ PYTHON ΚΑΙ ΤΑ ΒΑΣΙΚΑ

ΣΤΟΙΧΕΙΑ ΤΗΣ

Page 6: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 6/100

6

Page 7: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 7/100

7

Εισαγωγικές Παρατηρήσεις

Η γλώσσα προγραμματισμού Python είναι μια από τις δημοφιλέστερες γλώσσες

προγραμματισμού γενικής χρήσης παγκοσμίως με δυναμική κοινότητα και η χρήση της

παρουσιάζει αυξητική τάση τα τελευταία χρόνια. Η Python αποτελεί ιδανική επιλογή για

την εκμάθηση προγραμματισμού από αρχάριους λόγω της απλότητάς της και του

ευανάγνωστου κώδικά της. Από την άλλη πλευρά, οι δυνατότητές της για υλοποίηση

σύνθετων προγραμμάτων και εφαρμογών στο διαδίκτυο είναι πολύ σημαντικές λόγω

των επεκτάσεων και των βιβλιοθηκών που παρέχονται από την κοινότητα. Ειδικά στο

χώρο της Επιστήμης Δεδομένων ο ρόλος της είναι πολύ σημαντικός και αποτελεί τη

βασική επιλογή από πολλές εταιρίες του χώρου.

Για τον προγραμματισμό στην Python είναι αναγκαία η εγκατάσταση του

περιβάλλοντος της γλώσσας στον υπολογιστή των εκπαιδευόμενων ώστε να είναι σε

θέση να εκτελέσουν τα σενάρια και τα προγράμματα.

Έτσι, στην πρώτη υποενότητα οι εκπαιδευόμενοι εισάγονται βαθμιαία στη γλώσσα

Python. Παρουσιάζονται τα γενικά χαρακτηριστικά της και η ιστορική εξέλιξή της. Στη

συνέχεια παρουσιάζονται οι δυνατότητες της γλώσσας καθώς και τα βασικά

πλεονεκτήματα και μειονεκτήματά της. Τέλος, αναφέρονται στοιχεία σύγκρισης με

εναλλακτικές γλώσσες και τα πλεονεκτήματά της έναντι αυτών. Στη δεύτερη υποενότητα

παρέχονται οι οδηγίες για την εγκατάσταση της γλώσσας σε διαφορετικά λειτουργικά

περιβάλλοντα. Γίνεται συνοπτική αναφορά στο πλαίσιο εκτέλεσης προγραμμάτων και

τον διαδραστικό διερμηνευτή. Επίσης παρουσιάζεται το περιβάλλον ανάπτυξης IDLE και

παρέχονται τα βασικά χαρακτηριστικά του. Στην τρίτη υποενότητα παρουσιάζονται τα

βασικά στοιχεία της γλώσσας σε συνοπτική μορφή. Η παρουσίαση περιλαμβάνει τους

ενσωματωμένους τύπους δεδομένων και τις δομές ελέγχου ροής. Η παρουσίαση είναι

συνοπτική και στις επόμενες διδακτικές ενότητες θα παρουσιαστεί αναλυτικά. Τέλος,

στην τέταρτη υποενότητα παρουσιάζονται πηγές στο διαδίκτυο που προσφέρουν

περιβάλλον διερμηνευτή και παρέχουν δυνατότητα ανάπτυξης σεναρίων και

εφαρμογών Python και η χρήση τους για βασικές εντολές και, τέλος, στοιχεία για την

κοινότητα Python και τη λειτουργία της.

Page 8: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 8/100

8

ΥΠΟΕΝΟΤΗΤΑ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ PYTHON

Στα πλαίσια αυτής της υποενότητας θα αναφερθούμε στα παρακάτω:

τι είναι η Python, ποια είναι τα βασικά της χαρακτηριστικά και οι δυνατότητές της,

ποια είναι η εξέλιξή της και η τρέχουσα εικόνα,

ποια είναι τα πλεονεκτήματα και ποια τα μειονεκτήματά της, και

πώς συγκρίνεται με εναλλακτικές γλώσσες προγραμματισμού.

1.1 Τι είναι η Python

Πριν προχωρήσουμε στην αναλυτικότερη παρουσίαση των χαρακτηριστικών της

γλώσσας, ας αναφέρουμε σε αυτό το σημείο ότι η Python είναι μια γλώσσα

προγραμματισμού υψηλού επιπέδου, γενικής χρήσης και μάλιστα πολύ διαδεδομένη

παγκοσμίως. Συνήθως ένα ερώτημα που τίθεται σε αυτό το σημείο είναι «γιατί Python;»

και όχι κάποια άλλη γλώσσα προγραμματισμού.

Η εκμάθησή της, όπως και κάθε άλλης γλώσσας προγραμματισμού, απαιτεί την

επένδυση κάποιου χρόνου εκ μέρους του ενδιαφερόμενου ώστε να είναι σε θέση να την

χρησιμοποιεί με ευχέρεια και ενδεχομένως να την αξιοποιήσει επαγγελματικά. Λόγω της

πληθώρας των εναλλακτικών γλωσσών που είναι διαθέσιμες, το εύλογο ερώτημα που

τίθεται από την πλευρά του ενδιαφερόμενου, αρχάριου ή έμπειρου, προγραμματιστή

είναι «για ποιο λόγο να μάθω Python;».

Ο χρόνος και η προσπάθεια για την εκμάθηση μιας γλώσσας αναφέρονται ως

«καμπύλη μάθησης» και εξαρτώνται από αρκετούς παράγοντες που αφορούν είτε στην

ίδια τη γλώσσα ή και στην γενικότερη εξειδικευμένη γνώση που προαπαιτείται. Σε κάθε

περίπτωση, πάντως, το ερώτημα παραμένει, ειδικά σήμερα όπου υπάρχουν δεκάδες

επιλογές, που ποικίλουν από ώριμες γλώσσες, όπως οι C και C++, έως νέες σχετικά

επιλογές, όπως οι Ruby, C# και Lua, και σε κυρίαρχες στον χώρο των επιχειρησιακών

εφαρμογών, όπως η Java. Ο γενικός κανόνας είναι ότι καμία γλώσσα δεν ταιριάζει

απόλυτα σε όλες τις περιπτώσεις και δεν καλύπτει όλες τις ανάγκες στον ίδιο βαθμό.

Ωστόσο, η Python είναι μια πολύ καλή επιλογή, τόσο γιατί καλύπτει αρκετά ευρεία

ποικιλία υπολογιστικών προβλημάτων όσο και γιατί είναι από τις καλύτερες επιλογές για

εκμάθηση προγραμματισμού από αρχάριους. Ειδικότερα, δε, αποτελεί βασική επιλογή

Page 9: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 9/100

9

για την κατεύθυνση εφαρμογών στην περιοχή της Επιστήμης Δεδομένων, που αποτελεί

και αντικείμενο του προγράμματος.

Σε αυτό το σημείο ας προσδιορίσουμε τι είναι η Python με περισσότερη ακρίβεια.

Επιμέρους προσδιορισμοί, όπως γλώσσα εκτέλεσης σεναρίων, δίνουν μερική εικόνα

της γλώσσας. Ωστόσο, σήμερα η γλώσσα καλύπτει ένα ευρύτερο φάσμα και είναι

αρκετά πλούσια, ώστε ένας πληρέστερος προσδιορισμός είναι ο εξής:

Η Python είναι μια διερμηνευόμενη , υψηλού επιπέδου γλώσσα

προγραμματισμού γενικής χρήσης με δυναμική σημασιολογία , η οποία

ενσωματώνει δυνατότητες αντικειμενοστραφούς , συναρτησιακού και

διαδικαστικού προγραμματισμού (Object oriented, functional,

procedural programming).

Επιμέρους προσδιορισμοί της γλώσσας είναι οι εξής:

Η Python είναι μια διερμηνευόμενη γλώσσα προγραμματισμού

γενικής χρήσης, η οποία έχει συχνά το ρόλο γλώσσας εκτέλεσης

σεναρίων (scripting language).

Επίσης, προσδιορίζεται ως αντικειμενοστρεφής γλώσσα εκτέλεσης

σεναρίων (object-oriented scripting language), κάτι που συνδυάζει

το γεγονός ότι υποστηρίζει αντικειμενοστρεφή προγραμματισμό και

ταυτόχρονα έχει και τον ρόλο γλώσσας εκτέλεσης σεναρίων.Στο σημείο αυτό είναι επίσης σημαντικό να αναφερθεί ότι η πρότερη εξοικείωση με την

σχετική ορολογία προγραμματισμού λογισμικού είναι αναγκαία για τους

εκπαιδευόμενους, ώστε να είναι σε θέση να παρακολουθούν το πρόγραμμα με άνεση.

Σε ορισμένα σημεία των ενοτήτων παρέχονται και οι αγγλικοί όροι, αν η ελληνική

απόδοση δεν είναι αρκετά ευκρινής, ωστόσο δεν αναπτύσσονται διεξοδικά θέματα που

αφορούν σε προγραμματισμό Η/Υ εν γένει. Σε κάθε περίπτωση αν ο εκπαιδευόμενος

διαπιστώσει δυσκολία κατανόησης σε θέματα γενικότερης υφής, όπως για παράδειγμα

οι αλγόριθμοι ή οι δομές δεδομένων, θα ήταν σκόπιμη η χρήση κάποιων βοηθητικών

πηγών ανάλογα με την περίπτωση κάθε φορά.

1.2 Βασικά χαρακτηριστικά της γλώσσας

Η Python είναι δημοφιλής καθώς συνδυάζει ένα σύνολο χαρακτηριστικών, τα οποία τις

προσδίδουν ιδιαίτερες δυνατότητες, ευκολία στη χρήση και εκμάθηση αλλά ταυτόχρονα

αρκετή ισχύ για τη δημιουργία σύνθετων εφαρμογών.

Τα βασικότερα χαρακτηριστικά της Python είναι τα ακόλουθα:

Page 10: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 10/100

10

Είναι γλώσσα υψηλού επιπέδου: Η Python είναι γλώσσα υψηλού επιπέδου και

προσφέρει ένα υψηλό επίπεδο αφαίρεσης, ώστε ο προγραμματιστής δεν απαιτείται

να έρθει σε επαφή με χαμηλού επιπέδου λειτουργίες, όπως διαχείριση μνήμης,

καθαρισμός αντικειμένων και θέματα του λειτουργικού περιβάλλοντος γενικότερα.

Επιπλέον, η δομή και η σύνταξή της την τοποθετεί σε θέση πολύ κοντά στον

ψευδοκώδικα και την φυσική γλώσσα, κάτι που διευκολύνει την εργασία του

προγραμματιστή.

Είναι διερμηνευόμενη: Ένα πρόγραμμα σε Python δεν μεταγλωττίζεται σε δυαδικό

αρχείο αλλά εκτελείται απευθείας από τον πηγαίο του κώδικα. Ενώ ένα πρόγραμμα

σε μια γλώσσα όπως η C++ μετατρέπεται από την πηγαία γλώσσα σε γλώσσα του

υπολογιστή (δυαδικός κώδικας) χρησιμοποιώντας ένα μεταγλωττιστή. Όταν το

πρόγραμμα εκτελείται, το πρόγραμμα σύνδεσης αντιγράφει το πρόγραμμα στη

μνήμη και αρχίζει να το εκτελεί. Η Python δε χρειάζεται μεταγλώττιση σε δυαδικό

αρχείο. Εσωτερικά, η Python μετατρέπει τον πηγαίο κώδικα σε μια ενδιάμεση μορφή

που ονομάζεται bytecode, το μεταφράζει στη γλώσσα του υπολογιστή και το τρέχει.

Αυτό κάνει τη χρήση της Python πολύ πιο εύκολη, αφού δε χρειάζεται μεταγλώττιση

του προγράμματος, σύνδεση με κατάλληλες βιβλιοθήκες. Επίσης κάνει τα

προγράμματα της Python εξαιρετικά φορητά.

Υποστηρίζει διαδικαστικό, αντικειμενοστρεφή και λειτουργικό προγραμματισμό: Η

Python είναι αντικειμενοστρεφής γλώσσα και υποστηρίζει τόσο διαδικασιακό

προγραμματισμό (procedure-oriented) όσο και αντικειμενοστρεφή

προγραμματισμό (object-oriented). Στο διαδικασιακό προγραμματισμό το

πρόγραμμα δομείται πάνω σε διαδικασίες ή συναρτήσεις, οι οποίες είναι

επαναχρησιμοποιήσιμα τμήματα από προγράμματα. Στις αντικειμενοστρεφείς

γλώσσες τα προγράμματα δομούνται πάνω σε αντικείμενα τα οποία συνδυάζουν

δεδομένα και λειτουργικότητα. Η Python έχει έναν πολύ ισχυρό αλλά πολύ απλό

τρόπο για αντικειμενοστρεφή προγραμματισμό, ειδικά όταν συγκρίνεται με μεγάλες

γλώσσες όπως η C++ ή η Java. Επιπλέον αυτών, τα τελευταία χρόνια έχει αποκτήσει

και πρόσθετα στοιχεία για υποστήριξη σε λειτουργικό προγραμματισμό (functional

programming).

Είναι λογισμικό ανοικτού κώδικα: Η Python είναι Λογισμικό Ανοικτού Κώδικα.

Δηλαδή επιτρέπεται η εγκατάσταση, διανομή, αντιγραφή πηγαίου κώδικα, μεταβολές

και χρήση της σε νέα προγράμματα ελεύθερα.

Page 11: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 11/100

11

Είναι φορητή. Η τυπική διανομή της Python στηρίζεται στη γλώσσα ANSI C και

μπορεί να εκτελεστεί σε σχεδόν όλες τις υφιστάμενες πλατφόρμες.

Είναι εξαιρετικά ισχυρή: Η Python με βάση τα χαρακτηριστικά της έχει υβριδικό

χαρακτήρα. Από τη μια πλευρά, τοποθετείται κοντά στις παραδοσιακές γλώσσες

εκτέλεσης σεναρίων (όπως Tcl, Scheme, and Perl) και, από την άλλη, κοντά σε

παραδοσιακές γλώσσες ανάπτυξης εφαρμογών (όπως C, C++, και Java). Αυτός ο

συνδυασμός τής δίνει το πλεονέκτημα ότι μπορεί να χρησιμοποιηθεί σε

προγραμματισμό εφαρμογών μεγάλης κλίμακας και ταυτόχρονα να διατηρεί την

αμεσότητα και ευκολία χρήσης μιας γλώσσας σεναρίων.

Έχει την δυνατότητα σύνδεσης και ανάμιξης με διαφορετικές γλώσσες: Τα

προγράμματα σε Python είναι εύκολο να συνδεθούν με αντικείμενα που έχουν

δημιουργηθεί με διαφορετικές γλώσσες προγραμματισμού, όπως για παράδειγμα η

γλώσσα C και η C++. Η ευελιξία αυτή είναι δυνατή με τη χρήση διεπαφών (για

παράδειγμα το Python C API), με τη βοήθεια των οποίων ένα πρόγραμμα Python

είναι δυνατό να καλέσει και να κληθεί από προγράμματα σε διαφορετική γλώσσα. Η

δυνατότητα αυτή εξυπηρετεί τη γρήγορη δημιουργία πρωτοτύπων σε Python και την

μεταφορά τους αργότερα σε κάποια άλλη γλώσσα.

Είναι απλή και εύκολη στην εκμάθηση: Η Python είναι πολύ απλή και σχεδόν

μινιμαλιστική γλώσσα. Η ανάγνωση ενός καλοδομημένου προγράμματος σε Python

είναι σαν ανάγνωση κειμένου καθώς σε μεγάλο βαθμό μοιάζει με ψευδοκώδικα. Για

τον λόγο αυτό ο προγραμματιστής μπορεί και επικεντρώνεται στη λύση του

προβλήματος και όχι στην ίδια τη γλώσσα και τις ιδιαιτερότητές της.

1.3 Εξέλιξη της γλώσσας

Η Python είναι μια σύγχρονη γλώσσα προγραμματισμού, η οποία αναπτύχθηκε από

τον Guido van Rossum τη δεκαετία του 1990 και ονομάστηκε έτσι από τη διάσημη κωμική ομάδα των Monty Pythons. Η Python είναι αρκετά ενεργή από την δημιουργία

της και συνεχώς εξελίσσεται. Ως τέτοια, έχει στο ιστορικό της μια σειρά εκδόσεων όπου

κάθε νεότερη προσθέτει βελτιώσεις, νέα χαρακτηριστικά και δυνατότητες.

Η κυρίαρχη έκδοση για αρκετά χρόνια ήταν η έκδοση 2.x με την πλέον πρόσφατη να

είναι η 2.7.9. Η έκδοση 2.7 διατέθηκε στα μέσα του 2010 και είναι η τελική των εκδόσεων

2.x, με την έννοια ότι δεν θα υποστηρίζονται νέες λειτουργίες και βελτιώσεις αλλά απλή

υποστήριξη. Πλέον, από το 2008 όπου διατέθηκε η έκδοση 3.0 οι εκδόσεις 3.x

Page 12: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 12/100

12

θεωρούνται ως το παρόν και το μέλλον της γλώσσας. Το 2012 και το 2014 διατέθηκαν

οι εκδόσεις 3.3 και 3.4, αντίστοιχα, και η τρέχουσα έκδοση είναι η 3.4.2.

Με τη μετάβαση στην Python 3.x ο δημιουργός της Guido van Rossum έλαβε την

απόφαση να δημιουργήσει μια έκδοση χωρίς να ενδιαφέρεται για την συμβατότητα με

προηγούμενες εκδόσεις, κάτι το οποίο τηρούνταν σε όλες τις εκδόσεις 2.x. Το

ενδιαφέρον ήταν η βελτίωση της γλώσσας σε διάφορα σημεία, όπως για παράδειγμα η

βελτίωση της υποστήριξης Unicode, η προσαρμογή ορισμένων στοιχείων της

γλώσσας ώστε να είναι περισσότερο συνεπή με την υπόλοιπη γλώσσα και να βελτιωθεί

η χρήση της από αρχάριους.

Ωστόσο, αυτή η τομή της μη συμβατότητας προς τα πίσω έχει ως αποτέλεσμα τη

δημιουργία ορισμένων προβλημάτων εκτέλεσης σε Python 3.x εφαρμογών που έχουν

δημιουργηθεί με Python 2.x.

Για να δώσουμε ένα παράδειγμα, η εκτύπωση μιας συμβολοσειράς σε

προγενέστερες εκδόσεις εκτελείται με μια πρόταση:

ενώ στην Python 3 η είναι συνάρτηση και απαιτεί παρενθέσεις δηλαδή:

Για την αντιμετώπιση προβλημάτων αυτού του τύπου δημιουργήθηκαν εργαλεία και στρατηγικές μετατροπής ώστε να είναι δυνατή η ασφαλής και αποδοτική μεταφορά του

παλιού κώδικα σε Python 3.

Αν και το συγκεκριμένο θέμα αφορά το ευρύτερο οικοσύστημα της Python και τον

τρόπο που λειτουργεί, και όχι τον αρχάριο χρήστη, εντούτοις το συμπέρασμα και η

απάντηση στο ερώτημα «Python 2 ή 3» είναι αναμφισβήτητα Python 3, γιατί αυτή

αντιπροσωπεύει το μέλλον της γλώσσας.

Ωστόσο, για τις ανάγκες του παρόντος προγράμματος συνιστούμε να κατεβάσετε και

να εγκαταστήσετε τις τελευταίες εκδόσεις τόσο της σειράς 2 όσο και της σειράς 3. Οι

τρέχουσες, όπως θα αναφερθεί και στην επόμενη υποενότητα, είναι οι 2.7.9 και 3.4.2. Ο

λόγος είναι ότι αν και η εισαγωγή στη γλώσσα θα πραγματοποιηθεί στην έκδοση 3.x,

αρκετά προγράμματα που έχουν ήδη δομηθεί με βάση την έκδοση 2.x δεν είναι ακόμη

ενδεχομένως πλήρως συμβατά με την έκδοση 3.x. Καθώς θα προχωράμε στις

διδακτικές ενότητες θα υπάρχει ανάγκη εκτέλεσης προγραμμάτων και βιβλιοθηκών που

θα απαιτούν έκδοση 2.x.

Page 13: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 13/100

13

Αν και ακούγεται λίγο παράξενο, δεν υπάρχει κανένα πρόβλημα με την εγκατάσταση

διαφορετικών εκδόσεων της Python στον ίδιο υπολογιστή. Η κάθε έκδοση εγκαθίσταται

με τα αρχεία της σε ξεχωριστό φάκελο και έχει ξεχωριστό μενού στα προγράμματα των

Windows.

1.4 Προτερήματα και μειονεκτήματα της Python

Η Python είναι αρκετά δημοφιλής, χρησιμοποιείται ήδη από εκατοντάδες χιλιάδες

προγραμματιστών παγκοσμίως και ο αριθμός τους αυξάνει σημαντικά κάθε χρόνο,

κάτι που αποδεικνύει τα προτερήματά της. Ωστόσο, δεν έχει μόνο προτερήματα αλλά,

όπως και κάθε γλώσσα προγραμματισμού, παρουσιάζει κάποιες ιδιαιτερότητες ή κατά

μερικούς μειονεκτήματα. Αν και καμία γλώσσα προγραμματισμού δεν είναι η τέλεια

επιλογή για κάθε εφαρμογή, εντούτοις τα δυνατά της σημεία της Python την καθιστούν

μια αρκετά καλή επιλογή για πληθώρα προβλημάτων.

Τα θετικά της γλώσσας είναι συνοπτικά τα παρακάτω:

τα προγράμματα σε Python εκτελούνται σε όλα τα περιβάλλοντα εξίσου καλά, τόσο

σε Windows όσο σε Linux/Unix και Macintosh,

μπορεί να τρέξει σε όλες τις τεχνολογικές πλατφόρμες, από υπερυπολογιστές έως

κινητά τηλέφωνα,

μπορεί να χρησιμοποιηθεί για την ανάπτυξη τόσο μικρών εφαρμογών και άμεσων

πρωτότυπων όσο και για μεγάλης κλίμακας προγραμμάτων,

περιλαμβάνει πολύ ισχυρό και εύκολο στη χρήση γραφικό περιβάλλον χρήστη,

βιβλιοθήκες προγραμματισμού διαδικτύου και πολλά άλλα.

Τα βασικά της πλεονεκτήματα είναι τα εξής:

Η Python είναι εύκολη στη χρήση: Οι προγραμματιστές που είναι εξοικειωμένοι με

παραδοσιακές γλώσσες προγραμματισμού θα βρουν την Python εύκολη στην

εκμάθηση. Όλες οι κατασκευές και δομές, όπως βρόχοι, δομές ελέγχου, πίνακες και άλλα, περιλαμβάνονται στην Python αλλά είναι αρκετά ευκολότερα. Αυτό γιατί οι

τύποι συσχετίζονται με αντικείμενα και όχι μεταβλητές. Σε μια μεταβλητή μπορεί να

ανατεθεί μια τιμή οποιουδήποτε τύπου και μια λίστα είναι δυνατό να περιέχει

αντικείμενα διαφόρων τύπων. Αυτό έχει ως αποτέλεσμα να μην απαιτείται μετατροπή

τύπων και προδηλωμένοι τύποι.

Η Python λειτουργεί σε αρκετά υψηλότερο επίπεδο αφαίρεσης: Αυτό αντανακλά το

γεγονός ότι η γλώσσα σχεδιάστηκε με αυτό τον τρόπο αλλά και το ότι η διανομή της

περιλαμβάνει πληθώρα βιβλιοθηκών που διευκολύνουν την δουλειά του

Page 14: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 14/100

14

προγραμματιστή. Για παράδειγμα, ένα πρόγραμμα για το κατέβασμα μιας

ιστοσελίδας δεν απαιτεί περισσότερες από 2-3 γραμμές κώδικα!

Οι κανόνες σύνταξής της είναι πολύ απλοί: Αν και απαιτείται χρόνος για να

αποκτήσει κανείς πλήρη γνώση και να μετατραπεί σε έμπειρο χρήστη, εντούτοις

ακόμη και ο αρχάριος είναι σε θέση να αφομοιώσει σχετικά γρήγορα την σύνταξη

της γλώσσας και να γράψει σωστό κώδικα σχετικά σύντομα.

Η Python είναι εκφραστική: Με την έννοια εκφραστική εννοούμε ότι μια γραμμή

κώδικα Python κάνει περισσότερα από μια γραμμή κώδικα σε σχεδόν οποιαδήποτε

άλλη γλώσσα προγραμματισμού. Το πλεονέκτημα της εκφραστικότητας είναι άμεσα

συνδεδεμένο με την παραγωγικότητα, καθώς όσο λιγότερες γραμμές κώδικά είναι

αναγκαίες τόσο γρηγορότερα ολοκληρώνεται ένα έργο και επιπλέον τόσο

ευκολότερο είναι να συντηρηθεί και να εκσφαλματωθεί το πρόγραμμα.

Η Python είναι ευανάγνωστη: Ο ευανάγνωστος κώδικας είναι ένα επιπλέον

πλεονέκτημα της Python το οποίο συνδέεται στενά με την παραγωγικότητα. Τα

προγράμματα χρειάζονται συντήρηση ή εκσφαλμάτωση σε μεταγενέστερο χρόνο

από το χρόνο παραγωγής τους. Αυτό είναι περισσότερο εύκολο να γίνει αν ο

κώδικας είναι κατανοητός από τον προγραμματιστή. Η Python το καταφέρνει, εκτός

άλλων, και με τη υποχρεωτική χρήση εσοχών στα τμήματα κώδικα, όπως αυτά που

περιέχονται σε δομές ελέγχου.

Η Python είναι πλήρης: Η Pyhton έχει ως φιλοσοφία ότι όταν ο προγραμματιστής

εγκαθιστά τη γλώσσα πρέπει να έχει στη διάθεσή του τα πάντα όσα απαιτούνται για

μια εφαρμογή χωρίς να χρειαστεί επιπλέον βιβλιοθήκες. Με αυτό τον τρόπο στην

τυπική διανομή περιλαμβάνονται τμήματα για τη διαχείριση ιστοσελίδων, email,

βάσεων δεδομένων και άλλα.

Λειτουργεί σε όλες σχεδόν τις πλατφόρμες: Η Python είναι διερμηνευόμενη γλώσσα

και ο ίδιος κώδικας είναι δυνατό να εκτελεστεί σε οποιαδήποτε πλατφόρμα έχει

εγκατεστημένο διερμηνευτή Python. Όλες σχεδόν οι σύγχρονες πλατφόρμες

περιλαμβάνουν ένα τέτοιο διερμηνευτή και αυτό προσδίδει το πλεονέκτημα της

Python να είναι ουσιαστικά συμβατή και εκτελέσιμη σε περιβάλλοντα όπως Windows,

Mac, Linux, UNIX και όχι μόνο.

Είναι δωρεάν: Η Python είναι δωρεάν. Από την δημιουργία της η γλώσσα

αναπτύχθηκε με βάση το μοντέλο λογισμικού ανοικτού κώδικα. Αυτό εξακολουθεί να

συνεχίζει έως σήμερα και η γλώσσα είναι διαθέσιμη δωρεάν. Ο οποιοσδήποτε έχει τη

δυνατότητα να κατεβάσει, να εγκαταστήσει την γλώσσα σε όποια έκδοση επιθυμεί,

Page 15: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 15/100

15

να τη χρησιμοποιήσει για να αναπτύξει λογισμικό για εμπορική ή προσωπική χρήση

δίχως να χρειαστεί να πληρώσει κάποιο ποσό. Αν και πολλές φορές υπάρχει η

αίσθηση ότι η δωρεάν διάθεση του λογισμικού δεν συμβαδίζει με την ποιότητα, ή ότι

δεν υπάρχει επαρκής υποστήριξη, εντούτοις και μόνο το γεγονός ότι επιχειρήσεις

όπως η Google έχουν υιοθετήσει την Python ως βασική γλώσσα σε πολλές

εφαρμογές αρκεί για να πείσει και τον πλέον αβέβαιο. Εξάλλου οι κοινότητες

προγραμματιστών της Python είναι τόσο ενεργές στο διαδίκτυο, που ένα πρόβλημα

θα λάβει τάχιστα σωστή απάντηση από κάποιον και χωρίς κόστος, κάτι το οποίο δεν

συμβαίνει πάντοτε σε περισσότερο εμπορικά προγράμματα και γλώσσες.

Όπως όλες οι γλώσσες προγραμματισμού, έτσι και η Python δεν είναι το εργαλείο που

ταιριάζει σε όλα τα προβλήματα. Υπάρχουν και κάποια αδύνατα σημεία που πρέπει να

λάβει υπόψη του ο ενδιαφερόμενος προγραμματιστής ώστε να εκμεταλλευτεί τις

δυνατότητες της γλώσσας.

Ταχύτητα: Η Python δεν είναι πλήρως μεταγλωττίσιμη γλώσσα. Αλλά, αρχικά

μεταγλωττίζεται μερικώς σε μια μορφή δυαδικού κώδικα, ο οποίος στη συνέχεια

εκτελείται από τον διερμηνευτή Python. Αυτό δημιουργεί μια υστέρηση σε ταχύτητα

και γενικά μπορούμε να πούμε ότι σε σχέση με μια γλώσσα όπως η C τα αντίστοιχα

προγράμματα σε Python εκτελούνται σχετικά βραδύτερα. Παρ’όλα αυτά, οι

σύγχρονοι επεξεργαστές παρέχουν τόση υπολογιστική ισχύ που ουσιαστικά ο

χρόνος εκτέλεσης δε διαφέρει όταν πρόκειται για μικρού ή μεσαίου βεληνεκούς

εφαρμογές.

Βιβλιοθήκες: Αν και η Python περιλαμβάνει, όπως αναφέραμε, ευρεία συλλογή

βιβλιοθηκών, υπάρχουν γλώσσες όπως η Java ή η Perl που περιλαμβάνουν ακόμη

εκτενέστερες συλλογές βιβλιοθηκών και σε μερικές εξειδικευμένες περιπτώσεις η

Python δεν έχει αντίστοιχη βιβλιοθήκη.

Έλεγχος τύπου μεταβλητών κατά την εκτέλεση: Στην Python οι μεταβλητές

λειτουργούν περισσότερο ως ετικέτες οι οποίες αναφέρονται σε διάφορα

αντικείμενα, όπως ακέραιοι, συμβολοσειρές, κλάσεις, ή οτιδήποτε άλλο. Αυτό

σημαίνει ότι δεν συσχετίζονται με το συγκεκριμένο τύπο αλλά ότι απλά αναφέρονται

σε αυτό, παρόλο που τα αντικείμενα έχουν κάποιο τύπο. Η λειτουργία αυτή, η

συσχέτιση δηλαδή των τύπων με τα αντικείμενα και όχι με τις μεταβλητές, έχει ως

αποτέλεσμα να μην είναι εφικτή η εύρεση σφαλμάτων του τύπου μιας μεταβλητής

από το διερμηνευτή. Παρόλο που θεωρείται μειονέκτημα, συχνά εκλαμβάνεται και ως

ευελιξία που είναι αποδεκτή και χρήσιμη.

Page 16: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 16/100

16

1.5 Χρήσεις της Python

Πλήθος από σημαντικές εταιρίες παγκοσμίως και οργανισμοί έχουν υιοθετήσει την

Python για ποικίλες εφαρμογές και υπηρεσίες. Η Python είναι γλώσσα γενικής χρήσης

και καλύπτει μεγάλο εύρος αναγκών. Ενδεικτικά αναφέρουμε τις Google, NSA, Intel,Cisco που την έχουν ως βασική επιλογή σε τμήματα ή εφαρμογές τους. Εκτός αυτών,

αρκετές δημοφιλείς υπηρεσίες, όπως το YouTube, κάνουν επίσης χρήση της γλώσσας

σε σημαντικό βαθμό. Τα παραδείγματα αυτά δίνουν μια εικόνα των χρήσεων της

γλώσσας και της δύναμής της στον πραγματικό κόσμο και τις απαιτήσεις του.

Ειδικότερα, η Python μπορεί να χρησιμοποιηθεί για:

Προγραμματισμός Συστημάτων: Οι ενσωματωμένες διεπαφές της Python με

υπηρεσίες λειτουργικών συστημάτων την καθιστούν ιδανική για προγραμματισμό

εργαλείων λειτουργικών συστημάτων και εργαλείων. Προγράμματα σε Python

μπορούν να αναζητήσουν σε καταλόγους αρχείων και δένδρα, να εκκινήσουν άλλα

προγράμματα, να εκτελέσουν παράλληλη επεξεργασία με μεθόδους και νήματα, και

αρκετά ακόμη.

Προγραμματισμός GUIs: Η απλότητα της Python και η ταχεία ανάπτυξη κώδικα την

κάνουν μια καλή επιλογή για Graphical User Programming. Η Python περιλαμβάνει

μια τυπική object-oriented διεπαφή με το Tk GUI API, που ονομάζεται TkInter (Tkinter

σε 2.X), η οποία επιτρέπει σε προγράμματα Python την εφαρμογή φορητών

γραφικών διεπαφών χρήστη με εμφάνιση και αίσθηση τοπική.

Εκτέλεση σεναρίων στο διαδίκτυο: Η Python περιλαμβάνει τυποποιημένα modules

για το Internet που επιτρέπουν σε προγράμματα Python να εκτελέσουν μια ευρεία

ποικιλία εφαρμογών σε δίκτυα και στο διαδίκτυο.

Προγραμματισμός βάσεων δεδομένων: Για απαιτήσεις προγραμματισμού βάσεων

δεδομένων, υπάρχουν διεπαφές Python σε όλους τους τύπους βάσεων δεδομένων

όπως οι Sybase, Oracle, Informix, ODBC, MySQL, PostgreSQL. Προγραμματισμός ταχείας προτυποποίησης: Για τα προγράμματα σε Python, τα

components γραμμένα σε Python και C φαίνονται τα ίδια. Εξαιτίας αυτού, είναι

δυνατόν να δημιουργήσουμε ένα πρωτότυπο σε Python αρχικά, και στη συνέχεια να

μεταφέρουμε επιλεγμένα τμήματα σε μια γλώσσα όπως C ή C ++ για την παράδοση.

Αριθμητικός και επιστημονικός προγραμματισμός: Η Python χρησιμοποιείται επίσης

σε μεγάλο βαθμό σε αριθμητικό προγραμματισμό, έναν τομέα που παραδοσιακά

δεν είναι πεδίο για scripting γλώσσες, αλλά έχει γίνει μία από τις πιο συναρπαστικές

χρήσεις της Python, ειδικά για την περιοχή της Επιστήμης Δεδομένων.

Page 17: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 17/100

17

1.6 Python και εναλλακτικές γλώσσες

Πριν αποφασίσει κανείς να μάθει μια γλώσσα εξετάζει εναλλακτικές και συχνά θέτει το

ερώτημα, «Γιατί όχι κάποια εναλλακτική γλώσσα όπως Perl ή Ruby ή ακόμη και Java ή

C#;». Οι γλώσσες που είναι διαθέσιμες είναι πολλές δεκάδες και κάθε μια έχει το δικό της κοινό και οπαδούς αλλά και περιοχές χρήσης. Αν και τα κριτήρια επιλογής είναι πολλά,

θα δώσουμε πολύ περιληπτικά στην συνέχεια κάποια επιχειρήματα υπέρ της Python,

που αφορούν κατά κύριο λόγο την εκφραστικότητα και ευκολία στην εκμάθησή της.

Παραθέτουμε παρακάτω την έκδοση του κλασσικού προγράμματος Hello world σε

Java, C#, Perl, Ruby και Python.

στη γλώσσα Java:

στην C#:

στην Ruby:

στην Perl:

στην Python:

Εύκολα θα μπορούσε κάποιος να διαπιστώσει ότι ενώ οι γλώσσες Java και C# έχουν

μια δομή που απαιτεί ενδεχομένως μεγαλύτερο βαθμό εξοικείωσης, οι γλώσσες Perl και

Ruby έχουν σχεδόν παραπλήσια έκφραση με την Python, τουλάχιστον σε αυτό το

βασικό επίπεδο. Οπότε εύλογα θα μπορούσε να αναρωτηθεί αν οι Perl και Ruby είναι

εξίσου καλές με την Python για εκμάθηση. Τόσο η Perl όσο και η Ruby είναι γλώσσες

διερμηνευόμενες, όπως και η Python, και αρκετά δυναμικές, ωστόσο η Python

υπερτερεί γενικότερα σε ευκολία και δυναμική.

Η Perl είναι γλώσσα ανοικτού κώδικα και αρκετά δημοφιλής, η οποία συνοδεύεται από

μια πολύ πλούσια βιβλιοθήκη, την CPAN (Comprehensive Perl Archive Network), η

Page 18: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 18/100

18

οποία αποτελείται από αρθρώματα (modules) και πακέτα, με τα οποία ο

προγραμματιστής έχει τη δυνατότητα να εκτελέσει σχεδόν οτιδήποτε σε ένα

υπολογιστικό περιβάλλον. Είναι διαθέσιμη περισσότερο διάστημα από την Python και

αυτό εξηγεί τη πλούσια βιβλιοθήκη της και τη δημοφιλία της. Ωστόσο, πρόκειται για

γλώσσα που χρησιμοποιείται κυρίως σε μικρές εργασίες και όχι σε εκτεταμένα

προγράμματα. Ενώ σε μικρά σενάρια (scripts) έχει όντως απλή έκφραση, όταν

πρόκειται για προγράμματα μεγαλύτερα σε έκταση η Python υπερτερεί σε ευκολία και

απλότητα. Από την άλλη πλευρά, η Ruby είναι μια ανερχόμενη γλώσσα διερμηνευόμενη

ανοικτού κώδικα που είναι επίσης δημοφιλής, κυρίως λόγω εφαρμογών στο διαδίκτυο.

Ωστόσο, παρουσιάζει δυσκολία στην εκμάθηση σε σχέση με την Python.

ΥΠΟΕΝΟΤΗΤΑ 2. ΕΓΚΑΤΑΣΤΑΣΗ ΤΗΣ PYTHON

Στα πλαίσια της υποενότητας αυτής θα:

περιγραφεί η διαδικασία εγκατάστασης της γλώσσας στον υπολογιστή για

διαφορετικά λειτουργικά συστήματα,

περιγραφεί η λειτουργία και χρήση του διερμηνευτή της Python,

περιγραφεί η λειτουργία και χρήση του περιβάλλοντος ανάπτυξης IDLE,

παρουσιαστεί η διαδικασία συγγραφής και εκτέλεσης σεναρίων και προγραμμάτων

στην Python,

παρουσιαστούν και αναλυθούν τα βασικά στοιχεία ενός υποτυπώδους

προγράμματος Python.

2.1 Εγκατάσταση της Python

Για να ξεκινήσετε τον προγραμματισμό σε Python είναι αναγκαία η εγκατάσταση της

γλώσσας στον υπολογιστή σας. Τι σημαίνει όμως αυτό;

Η Python είναι γλώσσα προγραμματισμού. Αλλά εκτός από γλώσσα, η Python, όπως

έχει δημιουργηθεί και αναπτυχθεί, είναι επίσης ένα πακέτο λογισμικού που ονομάζεται

διερμηνευτής. Ο διερμηνευτής είναι ένας τύπος προγράμματος που η λειτουργία του

είναι να εκτελεί άλλα προγράμματα. Όταν γράφετε ένα πρόγραμμα σε Python, ο

διερμηνευτής Python διαβάζει το πρόγραμμά σας και εκτελεί τις εντολές που περιέχει.

Στην πραγματικότητα, ο διερμηνευτής είναι ένα επίπεδο λογισμικού που παρεμβάλλεται

μεταξύ του κώδικά σας και του λειτουργικού περιβάλλοντος στον υπολογιστή σας.

Page 19: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 19/100

19

Ανάλογα με το πώς πρόκειται να τον χρησιμοποιήσετε, ο διερμηνευτής Python μπορεί

να έχει τη μορφή ενός εκτελέσιμου προγράμματος ή ενός συνόλου από βιβλιοθήκες

που συνδέονται σε ένα άλλο πρόγραμμα. Επίσης, ανάλογα με το ποια έκδοση της

Python έχετε, ο διερμηνευτής μπορεί να είναι ένα πρόγραμμα C, ένα σύνολο από

κλάσεις Java ή κάτι διαφορετικό. Όποια μορφή όμως και αν έχει ο διερμηνευτής, ο

κώδικας της Python που γράφετε πρέπει να εκτελείται πάντα από αυτόν. Για να

ενεργοποιηθεί αυτή η δυνατότητα, θα πρέπει να εγκαταστήσετε ένα διερμηνευτή Python

στον υπολογιστή σας.

Στην επόμενη υποενότητα θα έχετε επαφή με το περιβάλλον του διαδραστικού

διερμηνευτή της Python σε περιβάλλον υπολογιστικού νέφους. Αν και η προσέγγιση

αυτή κερδίζει έδαφος, ειδικά στο χώρο της εισαγωγικής εκπαίδευσης στη γλώσσα, ο

προγραμματισμός σε Python απαιτεί τη χρήση βιβλιοθηκών και διεπαφών που δεν

διατίθενται σε ιστότοπους αυτής της μορφής. Επιπρόσθετα, ο κάθε ιστότοπος έχει

υλοποιήσει το πρόγραμμα του διερμηνευτή σε κάποια γλώσσα προγραμματισμού που

έχει τους δικούς της περιορισμούς κάθε φορά. Επομένως, αν και το περιβάλλον

διερμηνευτή στο διαδίκτυο μπορεί να χρησιμοποιηθεί για σχετικά απλές εφαρμογές, η

απρόσκοπτη εκμάθηση της γλώσσας προϋποθέτει να οργανώσετε στο περιβάλλον

του υπολογιστή σας όλα τα αναγκαία προγράμματα ώστε να έχετε στη διάθεσή σας το

πλήρες περιβάλλον κάθε φορά.

Για το λόγο αυτό, συνεχίζουμε με την βασική εγκατάσταση της Python στον υπολογιστή

σας. Όταν το πακέτο λογισμικού Python εγκαθίσταται στον υπολογιστή σας,

δημιουργεί μια σειρά από στοιχεία (components), τον διερμηνευτή και βιβλιοθήκες

υποστήριξης. Η βασική εγκατάσταση περιλαμβάνει τον διερμηνευτή της γλώσσας, το

ολοκληρωμένο περιβάλλον ανάπτυξης IDLE και την τεκμηρίωση της γλώσσας.

Η διαδικασία της εγκατάστασης της Python είναι αρκετά απλή ανεξάρτητα από την

πλατφόρμα και το λειτουργικό σύστημα που χρησιμοποιείτε. Για να ξεκινήσετε τη

διαδικασία επισκεφτείτε τον επίσημο ιστότοπο της Python στη διεύθυνση python.org.

Αφού επισκεφτείτε τον ιστότοπο της Python, επιλέγετε την έκδοση με βάση το

λειτουργικό σύστημα για το οποίο προορίζεται η εγκατάσταση. Τα συνηθέστερα, τα

οποία εμφανίζονται ως κύριες επιλογές, είναι τα Windows, Linux/UNIX και Mac OS X.

Ωστόσο, υπάρχουν επιλογές και για αρκετά ακόμη.

Σημειώστε ότι θα χρειαστείτε μια σύνδεση στο διαδίκτυο για να πραγματοποιήσετε τις

εργασίες εγκατάστασης. Εναλλακτικά, μπορείτε να προμηθευτείτε τα αρχεία με κάποιο

εναλλακτικό μέσο, να τα αντιγράψετε στον υπολογιστή σας και να τα εγκαταστήσετε.

Page 20: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 20/100

20

Στη συνέχεια δίνονται οδηγίες για την εγκατάσταση σε Windows, Linux/UNIX και Mac OS

X.

Από εδώ και στο εξής το περιβάλλον που θα χρησιμοποιείται για τα παραδείγματα

κώδικα που θα παρουσιάζονται στις διδακτικές ενότητες θα είναι Windows. Είσαστε

ελεύθεροι να χρησιμοποιήσετε την έκδοση του λειτουργικού που επιθυμείτε, καθώς δεν

υπάρχει διαφοροποίηση μεταξύ των διαφορετικών συστημάτων.

2.1.1 Windows

Αφού επισκεφτείτε την κεντρική σελίδα python.org/downloads, θα επιλέξετε το

λειτουργικό σύστημα Windows και θα δείτε τον κατάλογο με όλες τις εκδόσεις και τη

σχετική υπερσύνδεση για κατέβασμα του αρχείου εγκατάστασης στον υπολογιστή σας.

Θα επιλέξετε από τις διαθέσιμες εκδόσεις αυτή που αντιστοιχεί στο δικό σας λειτουργικό

σύστημα, δηλαδή την έκδοση Windows που έχετε εγκατεστημένη. Κατεβάζετε το σχετικό

αρχείο εγκατάστασης, είτε το αρχείο με ένδειξη Windows x86 MSI installer ή το Windows

x86-64 MSI installer, και το αποθηκεύετε στο δίσκο σας σε κάποιο φάκελο που θα

καθορίσετε.

Στην συνέχεια εκτελείτε το αρχείο και ακολουθείτε τις οδηγίες του οδηγού εγκατάστασης

χωρίς να αλλάξετε κάποια ρύθμιση. Σε λίγα βήματα η εγκατάσταση θα έχει

ολοκληρωθεί και θα είστε σε θέση να γράψετε το πρώτο σας πρόγραμμα.Εάν όλα έχουν πάει καλά και η εγκατάσταση ολοκληρώθηκε με επιτυχία, θα πρέπει να

βρείτε εγκατεστημένο το περιβάλλον της Python, το οποίο είναι στη θέση (που ενδέχεται

να διαφέρει ανάλογα με την έκδοση του λειτουργικού Windows):

Έναρξη → Όλα τα προγράμματα → Python (που αποτελεί το βασικό μενού εικονιδίων

της Python). Εκεί θα πρέπει να βρείτε τις εξής επιλογές:

IDLE (Python GUI).

Module Docs.

Python (command line).

Σε αυτό το σημείο είναι αναγκαίο να επιβεβαιώσετε ότι δεν υπάρχει κάποιο πρόβλημα με

την εγκατάσταση και ότι είστε σε θέση να χρησιμοποιήσετε την Python.

Από το Έναρξη → Όλα τα προγράμματα → Python (που αποτελεί το βασικό μενού

εικονιδίων της Python) επιλέγετε το → Python (command line). Αν όλα έχουν πάει καλά,

θα πρέπει να εμφανιστεί ένα παράθυρο με μαύρη οθόνη και τις παρακάτω γραμμές

που περιέχουν αρχικά πληροφορίες της εγκατεστημένης έκδοσης και στην τελευταία

γραμμή το σύμβολο .

Page 21: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 21/100

21

Το σύμβολο υποδηλώνει τη γραμμή εντολών και ο δείκτης (cursor) θα πρέπει να

αναβοσβήνει περιμένοντας τις πρώτες εντολές σας. Αυτό είναι το περιβάλλον του

διαδραστικού διερμηνευτή στο οποίο μπορείτε να γράψετε τις προτάσεις (εντολές) τις

οποίες θα εκτελέσει ο διερμηνευτής.

Όταν στο εξής στα παραδείγματα που παρουσιάζονται εμφανίζεται το σύμβολο αυτό

θα σημαίνει ότι πρέπει να πληκτρολογήσετε την εντολή που εμφανίζεται στη συνέχεια

της γραμμής.

Για την επιβεβαίωση ότι η μεταβλητή περιβάλλοντος έχει οριστεί σωστά, ανοίξτε ένα

παράθυρο γραμμής εντολών στα Windows (command prompt) και δώστε την εντολή

όπως παρακάτω:

Θα εισέλθετε πάλι στο περιβάλλον του διερμηνευτή και θα είστε σε θέση να εκτελέσετε

εντολές και σενάρια στην γραμμή εντολών. Αν δείτε το παραπάνω, η εγκατάσταση της

Python έχει ολοκληρωθεί με επιτυχία. Για να κλείσετε την κονσόλα θα πρέπει να εισάγετε

ή να πιέσετε ctrl-z και έπειτα να πιέσετε .

Αν λάβετε κάποιο λάθος, όπως για παράδειγμα:

τότε θα πρέπει να ελέγξετε αν η μεταβλητή συστήματος PATH είναι ορισμένη σωστά:

Για τα Windows 2000, XP, 2003, επιλέξτε από το Control Panel → System →

Advanced → Environment Variables. Στην συνέχεια, επιλέξτε τη μεταβλητή που ονομάζεται PATH στην ενότητα “System Variables” και έπειτα επιλέξτε Edit και

προσθέστε το ;C:\Python30 μετά από ότι είναι ήδη γραμμένο εκεί. Επειδή ο

φάκελος που εγκαταστάθηκε η Python ενδέχεται να είναι διαφορετικός, θα

πρέπει να χρησιμοποιήσετε το κατάλληλο όνομα φακέλου, όπου

εγκαταστήσατε την Python.

Για παλαιότερες εκδόσεις των Windows προσθέστε την ακόλουθη γραμμή στο

αρχείο C:\AUTOEXEC.BAT : “PATH=%PATH%;C:\Python34” ( χωρίς τα

εισαγωγικά) και επανεκκινήστε το σύστημα. Για τα Windows NT χρησιμοποιήστε

Page 22: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 22/100

22

το αρχείο AUTOEXEC.NT.

Έπειτα από όλα τα παραπάνω έχετε ολοκληρώσει την εγκατάσταση επιτυχώς.

2.1.2 Linux και Mac OS X

Στην περίπτωση που είσαστε χρήστης Linux, τότε κατά πάσα πιθανότητα δεν απαιτείται

εγκατάσταση, καθώς η Python βρίσκεται ήδη εγκατεστημένη στο σύστημά σας.

Για να το ελέγξετε ανοίξτε ένα πρόγραμμα κελύφους όπως το ή το

και πληκτρολογήστε την εντολή , όπως φαίνεται

παρακάτω.

Το είναι το σύμβολο της γραμμής εντολών του κελύφους, δηλαδή εκεί που

πρέπει να πληκτρολογείτε τις εντολές. Ενδέχεται να είναι διαφορετικό ανάλογα

με τις ρυθμίσεις του λειτουργικού σας συστήματος. Αν δείτε πληροφορίες

έκδοσης, όπως αυτές που φαίνονται προηγουμένως, τότε έχετε ήδη την Python

εγκατεστημένη. Αν έχετε ήδη εγκατεστημένη την Python 2.x, τότε για να

εκκινήσετε το περιβάλλον του διερμηνευτή πληκτρολογήστε python3 -V.

Ωστόσο, αν λάβετε ένα μήνυμα σαν κι αυτό:

τότε δεν έχετε εγκατεστημένη την Python. Αυτό είναι εξαιρετικά απίθανο αλλά όχι

αδύνατο και θα πρέπει να την εγκαταστήσετε. Σε αυτή την περίπτωση,

υπάρχουν δύο τρόποι για να εγκαταστήσετε την Python 3.x στον υπολογιστή

σας.

Μπορείτε να μεταγλωττίσετε την Python από τον πηγαίο κώδικα και να την

εγκαταστήσετε. Οι οδηγίες μεταγλώττισης παρέχονται στον ιστότοπο της

Python.

Εναλλακτικά μπορείτε να εγκαταστήσετε τα δυαδικά πακέτα

χρησιμοποιώντας το διαχειριστή πακέτων λογισμικού που συνοδεύει το

λειτουργικό σας σύστημα, όπως το στο Ubuntu/Debian και στις

άλλες διανομές Linux που βασίζονται στο Debian, το στο Fedora Linux,

Page 23: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 23/100

23

το στο FreeBSD, κ .λπ.

Στην περίπτωση που είσαστε χρήστης Mac OS X δεν απαιτείται εγκατάσταση, καθώς η

Python βρίσκεται ήδη εγκατεστημένη στο σύστημά σας -οπότε ανοίξτε το Terminal.app

και πληκτρολογήστε και ακολουθήστε τις οδηγίες στο πιο πάνω τμήμα για

το Linux.

2.2 Διαδραστικός Διερμηνευτής Python

Το πρόγραμμα το οποίο ερμηνεύει τις εντολές της γλώσσας Python και τις εκτελεί στη

συνέχεια είναι ο διερμηνευτής Python. Το πρόγραμμα αυτό εκτελείται είτε αυτόνομα ή

ενσωματωμένο σε μεγαλύτερα προγράμματα, τα οποία χρησιμοποιούνται ως

περιβάλλον ανάπτυξης. Στην απλή του μορφή μπορείτε να το εκκινήσετε είτε από ένα παράθυρο γραμμής εντολών των Windows ή από το μενού των προγραμμάτων. Θα

εισέλθετε έτσι στο περιβάλλον του διερμηνευτή και θα είστε σε θέση να εκτελέσετε

εντολές και σενάρια στην γραμμή εντολών. Γενικά δεν προσφέρει πολλές δυνατότητες

και χρησιμοποιείται για εκτέλεση προγραμμάτων που έχουν ήδη δοκιμαστεί για

σφάλματα. Ωστόσο, θα πρέπει να είσαστε εξοικειωμένοι με το περιβάλλον και τη

λειτουργία του.

Για την εκκίνηση του διερμηνευτή από παράθυρο γραμμής εντολών, θα ανοίξετε ένα

παράθυρο γραμμής εντολών στα Windows (command prompt) και θα δώσετε την

εντολή :

Ανάλογα με την έκδοση της Python θα δείτε πληροφορίες της έκδοσης και στη συνέχεια

το σύμβολο , το οποίο υποδηλώνει ότι βρίσκεστε στο διαδραστικό περιβάλλον του

διερμηνευτή και περιμένει από εσάς την εισαγωγή εντολών.

Για την εκκίνηση του διαδραστικού διερμηνευτή από το μενού των προγραμμάτων θα

επιλέξετε Έναρξη → Όλα τα προγράμματα → Python → Python (command line) και θα

έχετε πάλι το παράθυρο του διαδραστικού διερμηνευτή με τη γραμμή εντολών να

περιμένει την εισαγωγή εντολών.

Page 24: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 24/100

24

Για να τερματίσετε τον διερμηνευτή θα πρέπει να εισάγετε ή να πιέσετε ctrl-z και

έπειτα να πιέσετε .

Σε αρκετές πλατφόρμες υποστηρίζεται η ιστορικότητα των εντολών που έχουν δοθεί στη

γραμμή εντολών. Μπορείτε με αυτό τον τρόπο να περιηγηθείτε σε προηγούμενες

εντολές με το άνω και κάτω βέλος και να επανεκτελέσετε μια εντολή πατώντας .

2.3 IDLE (Python GUI)

Εκτός από το παράθυρο εντολών που είδαμε προηγουμένως, ένα αρκετά χρησιμότερο

εργαλείο είναι το IDLE (Python GUI). Το IDLE είναι περιβάλλον το οποίο παρέχει

πλουσιότερη διεπαφή προς τον χρήστη από το απλό παράθυρο εντολών. Πρόκειται

για ολοκληρωμένο περιβάλλον ανάπτυξης Python και συνδυάζει το περιβάλλον

διαδραστικού διερμηνευτή Python με εργαλεία επεξεργασίας κειμένου, εκτέλεσης και

εκσφαλμάτωσης κώδικα, κάνοντάς το έτσι μια ολοκληρωμένη λύση για τον

προγραμματισμό σε Python.

Αν και υπάρχουν πολύ πλουσιότερα περιβάλλοντα για τον προγραμματισμό σε

Python, αυτό θα αποτελέσει αρχικά το βασικό περιβάλλον που θα χρησιμοποιήσουμε

για να δημιουργούμε, να εκτελούμε προγράμματα, να κάνουμε δοκιμές και λειτουργίες

εκσφαλμάτωσης.

Γενικότερα, για την συγγραφή των προγραμμάτων Python μπορούμε να

χρησιμοποιήσουμε εναλλακτικά οποιονδήποτε επεξεργαστή κειμένου, καθώς τα

προγράμματα συγγράφονται ως απλά αρχεία κειμένου.

Το IDLE θα το ξεκινήσετε από το μενού

Έναρξη → Όλα τα προγράμματα → Python (που αποτελεί το βασικό μενού εικονιδίων

της Python) → IDLE (Python GUI)

Με αυτή την επιλογή ανοίγει το παράθυρο του IDLE, το οποίο παρέχει αρκετές

λειτουργίες και δυνατότητες: ανοίγει τον διαδραστικό διερμηνευτή της Python και προσφέρει τη γνωστή γραμμή

εντολών ,

στο περιβάλλον αυτό μπορείτε να εκτελέσετε εντολές και σενάρια όπως

προηγουμένως,

παρέχει ευκολίες στην επεξεργασία με τον χρωματισμό του κώδικα και αυτόματη

δημιουργία εσοχών με βάση την σύνταξη της γλώσσας,

παρέχει δυνατότητα αυτόματης συμπλήρωσης κώδικα,

Page 25: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 25/100

25

αποθηκεύει οτιδήποτε εκτελείται στη διάρκεια μιας συνεδρίας και παρέχει

ιστορικότητα των εντολών που έχουν εκτελεστεί με τα βέλη άνω και κάτω,

ο δείκτης μπορεί να μετακινηθεί σε οποιοδήποτε σημείο της οθόνης και να

αντιγράψει την γραμμή πατώντας Enter στην τελευταία γραμμή της οθόνης, όπου

από εκεί μπορεί να εκτελεστεί πάλι ή να μεταβληθεί,

παρέχει μενού επιλογών με επιλογές επεξεργαστή κειμένου,

προσφέρει αρκετές δυνατότητες επεξεργασίας κειμένου για τον προγραμματιστή,

όπως το να δημιουργεί αρχεία, να ανοίγει και να επεξεργάζεται εφαρμογές Python

από αποθηκευμένα αρχεία,

παρέχει πολλές από τις ευκολίες που παρέχει ένας τυπικός επεξεργαστής κειμένου

(εύρεση / αντικατάσταση, λειτουργίες αντιγραφής / αποκοπής / επικόλλησης, κλπ.),

παρέχει μενού επιλογών με επιλογές για εκτέλεση προγραμμάτων και

εκσφαλμάτωση,

όπως σε κάθε περιβάλλον Windows, το περιβάλλον IDLE προσφέρει στο χρήστη τη

δυνατότητα να παραμετροποιήσει την οθόνη της εφαρμογής και να εκτελέσει τις

εργασίες όσο το δυνατόν φιλικότερα.

2.4 Διαδικασία προγραμματισμού σε Python

Ο προγραμματισμός και η εκτέλεση προγραμμάτων σε Python μπορεί να

πραγματοποιηθεί με δύο τρόπους και εξαρτάται από το ρόλο που έχει ο

προγραμματιστής. Δηλαδή είτε ρόλο εκτέλεσης σεναρίων ή ρόλο προγραμματισμού:

Εκτέλεση σεναρίων μέσω του διαδραστικού διερμηνευτή: Σε αυτή την περίπτωση, ο

προγραμματιστής ανοίγει το πρόγραμμα του διερμηνευτή, όπως περιγράφεται

προηγουμένως, και έχει στη διάθεσή του την γραμμή εντολών. Σε αυτή μπορεί να

γράψει εντολές, οι οποίες μπορεί να αποτελούνται από μεμονωμένες εντολές μιας

γραμμής ή από σύνολο εντολών σε περισσότερες γραμμές. Ο διερμηνευτής με αυτό τον τρόπο επιτρέπει την συγγραφή και εκτέλεση σχετικά απλών σεναρίων (scripts).

Προγραμματισμός μέσω αρχείου πηγαίου κώδικα: Τα προγράμματα σε Python είναι

απλά αρχεία κειμένου τα οποία περιέχουν τον πηγαίο κώδικα ο οποίος συγγράφεται

σε κάποιο πρόγραμμα επεξεργασίας κειμένου. Στην περίπτωση αυτή το αρχείο

πηγαίου κώδικα Python πρέπει να αποθηκεύεται με την κατάληξη .py σε κάποιο

φάκελο του υπολογιστή. Στη συνέχεια αυτό εκτελείται είτε απευθείας με διπλό κλικ σε

αυτό (για περιβάλλον Windows) ή διαμέσου ενός περιβάλλοντος όπως το IDLE. Ο

επεξεργαστής κειμένου θα πρέπει να επιλέγεται με βάση την ευκολία χρήσης αλλά και

Page 26: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 26/100

26

τις δυνατότητες που παρέχει. Επίσης θα πρέπει να αποφεύγονται προγράμματα που

εισάγουν ειδικούς χαρακτήρες μορφοποίησης με αποτέλεσμα να παράγονται

ανεπιθύμητα αποτελέσματα. Ειδική αναφορά στο θέμα θα πραγματοποιηθεί στην

επόμενη διδακτική ενότητα.

Η γνώση του τρόπου λειτουργίας της γλώσσας δεν είναι αναγκαία για τον

προγραμματιστή, καθώς ο ίδιος δεν απαιτείται να έρθει σε επαφή με αυτό το επίπεδο.

Εντούτοις η περιγραφή της ροής εκτέλεσης ενός προγράμματος θα του δώσει μια

ευρύτερη εικόνα για τον τρόπο που η Python λειτουργεί και θα τον βοηθήσει να

κατανοήσει πιθανά λάθη στο μέλλον. Συνοπτικά, αυτό που συμβαίνει κάθε φορά που

δίνουμε εντολή στην Python να εκτελέσει ένα σενάριο ή πρόγραμμα είναι το εξής:

Αρχικά η Python μεταφράζει τον πηγαίο κώδικα (τις εντολές στο αρχείο με κατάληξη

.py) σε μια μορφή που είναι γνωστή ως δυαδικός κώδικας (byte code). Πρόκειται

για μια μετάφραση σε χαμηλότερο επίπεδο, η οποία διαχωρίζει τις εντολές σε

διακριτά βήματα. Αυτό έχει την μορφή ενός ενδιάμεσου αρχείου με κατάληξη .pyc.

Έπειτα, το αρχείο δυαδικού κώδικα αποστέλλεται για εκτέλεση σε αυτό που είναι

γνωστό ως Εικονική Μηχανή Python (Python VM), το οποίο δεν είναι κάποιο

ξεχωριστό πρόγραμμα, αλλά ένας βρόχος που διατρέχει και εκτελεί τις εντολές και τα

σενάρια που βρίσκονται στο ενδιάμεσο αρχείο.pyc. Πρόκειται για το τελευταίο στάδιο

του διερμηνευτή της Python.

ΥΠΟΕΝΟΤΗΤΑ 3. ΤΑ ΒΑΣΙΚΑ ΤΗΣ PYTHON

Στα πλαίσια της υποενότητας αυτής θα:

περιγραφούν συνοπτικά ορισμένα από τα βασικά στοιχεία της γλώσσας,

παρουσιαστούν οι τύποι δεδομένων,

παρουσιαστούν οι δομές ελέγχου ροής, και

παρουσιαστούν βασικά παραδείγματα για εξοικείωση.

3.1 Σύνοψη της Python

Τα βασικά στοιχεία της Python περιλαμβάνουν τους τύπους δεδομένων, τις μεταβλητές,

τις δομές ελέγχου, της συναρτήσεις και τα ορίσματά τους και τις εξαιρέσεις.

Η Python περιλαμβάνει μια σειρά από ενσωματωμένους τύπους δεδομένων:

ακέραιους αριθμούς,

Page 27: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 27/100

27

αριθμούς κινητής υποδιαστολής,

μιγαδικούς αριθμούς,

συμβολοσειρές,

λίστες,

πλειάδες,

λεξικά και

αντικείμενα αρχείων.

Ο προγραμματιστής μπορεί να τους χειριστεί με τη χρήση τελεστών, ενσωματωμένων

συναρτήσεων, συναρτήσεων βιβλιοθήκης ή και με τις μεθόδους που παρέχουν οι ίδιοι

οι τύποι δεδομένων.

Οι μεταβλητές της Python δεν χρειάζεται να δηλωθούν και μπορεί να λάβουν

οποιοδήποτε τύπο δεδομένων, είτε αντικείμενο ορισμένο από τον προγραμματιστή, ή

συνάρτηση, ή δομοστοιχείο (module).

Η Python έχει τη δυνατότητα για έλεγχο ροής υπό συνθήκη με τη χρήση δομών if-then-

else και βρόχους επανάληψης με τη χρήση των δομών while και for. Επιτρέπει τον

ορισμό συναρτήσεων με ευέλικτη μεταφορά ορισμάτων. Οι προγραμματιστές έχουν

επίσης την ευχέρεια να ορίσουν τις δικές τους κλάσεις και να αρχικοποιήσουν τα δικά

τους στιγμιότυπα (instances). Αυτές μπορούν να τις διαχειριστούν με μεθόδους

ορισμένες από τους ίδιους καθώς και από τους τελεστές της γλώσσας και

ενσωματωμένες συναρτήσεις, για τις οποίες ο προγραμματιστής έχει ορίσει ειδικές

μεθόδους. Τέλος, οι εξαιρέσεις (σφάλματα) αναδεικνύονται με την δήλωση raise και

διαχειρίζονται με την δομή try-except-else.

3.2 Ενσωματωμένοι τύποι δεδομένων

Η Python έχει διάφορους ενσωματωμένους τύπους δεδομένων, όπως βαθμωτούς

(αριθμούς και Booleans) αλλά και περισσότερο σύνθετες δομές (λίστες, λεξικά και αρχεία).

3.2.1 Αριθμοί

Οι τέσσερις τύποι αριθμών της Python είναι οι:

Ακέραιοι: π. χ. 10, 2, -3, 0, 587733334, -34222111222223.

Κινητής υποδιαστολής: π. χ. 3.0, -3.54

Μιγαδικοί αριθμοί: π. χ. 13 + 2j, –4- 2j, 4.2 + 6.3j.

Δυαδικοί (Booleans): True, False.

Page 28: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 28/100

28

Τους χειρίζεστε με τη χρήση των παρακάτω αριθμητικών τελεστών:

+ για Πρόσθεση (addition),

– για Αφαίρεση (subtraction),

* για Πολλαπλασιασμό (multiplication),

/ για Διαίρεση (division),

** για Ύψωση σε δύναμη (exponentiation),

% για Υπόλοιπο Διαίρεσης (modulus).

Για να έχετε μια καλύτερη εικόνα για τη διαχείριση των αριθμών εκτελέστε τις παρακάτω

εντολές στον διεπεξεργαστή σας.

Παράδειγμα με πρόσθεση και αφαίρεση σε ακέραιους:

Εκτελούμε κάποιες πράξεις είτε απευθείας στη γραμμή εντολών, ή αναθέτουμε το

αποτέλεσμα στη μεταβλητή x. Στη συνέχεια εκτυπώνουμε τη τιμή της.

Παράδειγμα με διαίρεση δύο αριθμών:

Το αποτέλεσμα μπορεί να είναι αριθμός κινητής υποδιαστολής, αν εκτελέσουμε τη

διαίρεση με τον τελεστή /, ή ακέραιος με στρογγυλοποίηση προς τα κάτω, αν

χρησιμοποιήσουμε τον τελεστή //. Επίσης με τον τελεστή % βρίσκουμε το υπόλοιπο μιας

διαίρεσης.

Page 29: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 29/100

29

Παράδειγμα με ύψωση σε δύναμη με τη χρήση μεγάλων αριθμών:

Σημειώστε ότι οι ακέραιοι δεν έχουν όριο. Μπορεί να φτάσουν σε όποιο μέγεθος θέλετε.

Παραδείγματα με αριθμούς κινητής υποδιαστολής: Βασίζονται κατά κύριο λόγο στους

αριθμούς διπλής ακρίβειας της γλώσσας C.

Παραδείγματα με μιγαδικούς αριθμούς:

Οι μιγαδικοί αριθμοί αποτελούνται από ένα πραγματικό και ένα φανταστικό τμήμα, το

οποίο δηλώνεται με το γράμμα j. Στο παρακάτω παράδειγμα ανατίθεται στη μεταβλητή

Page 30: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 30/100

30

x ένας μιγαδικός. Για να λάβετε το πραγματικό του τμήμα χρησιμοποιήστε το

χαρακτηριστικό (attribute) x.real και το x.imag για το φανταστικό.

Στην Python υπάρχουν αρκετές ενσωματωμένες συναρτήσεις, οι οποίες παρέχουν τη

δυνατότητα εργασιών με αριθμούς. Εκτός των ενσωματωμένων συναρτήσεων,

υπάρχουν αρθρώματα ή δομοστοιχεία (modules), τα οποία περιέχουν επίσης

συναρτήσεις που μπορούν να χρησιμοποιηθούν. Για τους αριθμούς υπάρχει το

δομοστοιχείο βιβλιοθήκη cmath που περιέχει συναρτήσεις για μιγαδικούς και η math, η

οποία περιέχει συναρτήσεις για τις υπόλοιπες τρεις κατηγορίες.

Παραδείγματα με δυαδικούς αριθμούς:

Οι δυαδικοί αριθμοί εκτός από το γεγονός ότι αναπαριστώνται ως True και False

συμπεριφέρονται όπως οι αριθμοί 1 (True) και 0 (False).

3.2.2 Συμβολοσειρές

Η επεξεργασία συμβολοσειρών είναι ένα από τα δυνατά σημεία της Python. Μια

συμβολοσειρά δεν είναι τίποτα άλλο από μια ακολουθία από χαρακτήρες. Οι

χαρακτήρες μπορεί να συνενωθούν σε λέξεις. Οι λέξεις μπορεί να είναι σε κάθε γλώσσα

που υποστηρίζεται από το πρότυπο Unicode, ουσιαστικά σε σχεδόν κάθε γλώσσα του

κόσμου.

Page 31: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 31/100

31

Οι συμβολοσειρές οριοθετούνται στην Python με αρκετούς τρόπους. Με μονά

εισαγωγικά (‘ ‘), με διπλά εισαγωγικά (“ “), με τριπλά μονά (‘’’ ‘’’) ή τριπλά διπλά

εισαγωγικά (“”” “””) και μπορούν να περιέχουν χαρακτήρες στηλοθέτη (\t) και

χαρακτήρες νέας γραμμής (\n).

Οι συμβολοσειρές είναι επίσης αμετάθετες. Οι τελεστές και οι συναρτήσεις οι οποίες

χειρίζονται συμβολοσειρές ουσιαστικά επιστρέφουν νέες συμβολοσειρές, οι οποίες

παράγονται από τις αρχικές. Οι τελεστές in, + και * και οι ενσωματωμένες συναρτήσεις

len, max, min λειτουργούν σε συμβολοσειρές και σε λίστες και πλειάδες επίσης.

Οι συμβολοσειρές έχουν διάφορες μεθόδους για να εργαστεί κάποιος με το

περιεχόμενό τους και η βιβλιοθήκη δομοστοιχείων re περιλαμβάνει επίσης συναρτήσεις

για συμβολοσειρές.

Το δομοστοιχείο re παρέχει λειτουργίες regular expression. Παρέχει περισσότερο

αναβαθμισμένες δυνατότητες εξαγωγής μοτίβων και αντικατάστασης σε σχέση με το

δομοστοιχείο string.

Η συνάρτηση print εκτυπώνει συμβολοσειρές. Επίσης σε συμβολοσειρές μπορεί να

μετατραπούν και να διαμορφωθούν και άλλοι τύποι δεδομένων της Python.

3.2.3 Λίστες

Η λίστα είναι μια δομή δεδομένων που περιέχει μια διατεταγμένη συλλογή στοιχείων. Σε αντίθεση με τις συμβολοσειρές είναι μεταθέσιμες. Περικλείεται σε αγκύλες [ ] και η

Python καταλαβαίνει ότι πρόκειται για λίστα.

Μια λίστα της Python μπορεί να περιέχει ένα μίγμα από τύπους δεδομένων, όπως

συμβολοσειρές, πλειάδες, λίστες, λεξικά, συναρτήσεις, αντικείμενα αρχείων και κάθε

τύπο αριθμού, και όχι αποκλειστικά έναν τύπο. Για παράδειγμα:

Page 32: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 32/100

32

Για μια λίστα μπορεί να δημιουργηθεί ευρετήριο από την αρχή ή το τέλος της. Επίσης,

είναι δυνατό να αναφερθούμε σε ένα τμήμα της (slice) χρησιμοποιώντας κατάλληλη

σημειογραφία (notation).

Παράδειγμα με ευρετήριο από την αρχή, θετικούς δείκτες και 0 το πρώτο στοιχείο:

Παράδειγμα με ευρετήριο από το τέλος, αρνητικούς δείκτες και -1 το τελευταίο στοιχείο:

Παράδειγμα με ανάκτηση τμήματος της λίστας με τη χρήση του [m:n] όπου m είναι η

αφετηρία (που περιλαμβάνεται στο αποτέλεσμα) και n το τέρμα (που δεν περιλαμβάνεται στο αποτέλεσμα). Το [m:] είναι το τμήμα της λίστας από το m ως το

τέλος και το [:n] είναι το τμήμα της λίστας από την αρχή ως το n.

Τέλος, σε μια λίστα μπορεί να προστεθούν, να διαγραφούν και να αντικατασταθούν

στοιχεία, να ανακτηθεί ένα στοιχείο ή ένα τμήμα της λίστας.

3.2.4 Πλειάδες

Οι πλειάδες είναι παραπλήσιες με τις λίστες αλλά είναι αμετάθετες, δηλαδή δεν μπορεί

να μεταβληθούν από τη στιγμή που θα σχηματιστούν. Μπορείτε να φανταστείτε ότι μια

πλειάδα είναι ένα παγωμένο στιγμιότυπο μιας λίστας. Ορίζονται με στοιχεία που

διαχωρίζονται με κόμμα και περικλείονται προαιρετικά από παρενθέσεις. Η δημιουργία

Page 33: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 33/100

33

ευρετηρίου και ο συμβολισμός για τμήματα (slice notation) λειτουργούν με τον ίδιο

τρόπο όπως και στις λίστες, αλλά δεν μπορούν να χρησιμοποιηθούν για την

προσθήκη, αφαίρεση ή αντικατάσταση στοιχείων. Μια βασική χρήση των πλειάδων

είναι η χρήση τους ως κλειδιά σε λεξικά. Επίσης, όταν δεν είναι αναγκαία η ευελιξία που

παρέχει η μεταβολή μιας λίστας, η πλειάδα είναι αποτελεσματικότερη.

Παράδειγμα πλειάδας με ένα στοιχείο, ή περισσότερα: Όπως μια λίστα, η πλειάδα

μπορεί να περιέχει διαφορετικά στοιχεία κάθε τύπου.

Μια λίστα είναι δυνατό να μετατραπεί σε πλειάδα με την χρήση της ενσωματωμένης

συνάρτησης tuple. Με τον ίδιο τρόπο, μια πλειάδα μπορεί να μετατραπεί σε λίστα με τη

χρήση της ενσωματωμένης συνάρτησης list.

3.2.5 Λεξικά

Ένα λεξικό είναι σαν μια λίστα επαφών, όπου από τη μια κρατάμε το όνομα και από την

άλλη συσχετίζουμε σε αυτό το όνομα τα στοιχεία επικοινωνίας. Ο τύπος αυτός στην

Python παρέχει ένα ενσωματωμένο τρόπο λειτουργίας συσχέτισης χρησιμοποιώντας

πίνακες κλειδιών (hash tables). Η συνάρτηση len επιστρέφει τον αριθμό των ζευγαριών

σε ένα λεξικό και η del χρησιμοποιείται για να διαγράψει ένα ζευγάρι. Τα κλειδιά πρέπει

να είναι αμετάθετοι τύποι, αριθμοί, συμβολοσειρές, και πλειάδες. Οι τιμές μπορεί να

έχουν οποιαδήποτε τιμή συμπεριλαμβανομένων και της λίστας και λεξικών.

3.3 Δομές ελέγχου ροής

Η Python περιλαμβάνει μια πλήρη σειρά από δομές για τον έλεγχο της εκτέλεσης ενός

προγράμματος και της ροής του, συμπεριλαμβανομένων των κοινών βρόχων

επανάληψης και διακλάδωσης.

Page 34: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 34/100

34

3.3.1 Δυαδικές τιμές και εκφράσεις

Η Python έχει διάφορους τρόπους έκφρασης δυαδικών τιμών: τη δυαδική σταθερά

False, 0, την τιμή None της Python, καθώς και κενές τιμές (για παράδειγμα, η κενή λίστα

[ ], η κενή συμβολοσειρά “ “) που εκλαμβάνονται ως False. Η δυαδική τιμή και οτιδήποτε

άλλο εκλαμβάνεται ως True.

Μπορείτε να δημιουργήσετε εκφράσεις για σύγκριση χρησιμοποιώντας τους τελεστές

σύγκρισης και τους λογικούς τελεστές (and,

not, or), όπου όλοι επιστρέφουν τιμή True ή False.

3.3.2 Η δομή if-elif-else

Η εντολή if χρησιμοποιείται για να ελεγχθεί μια συνθήκη και εάν (if) η συνθήκη αυτή είναι

αληθής, τότε εκτελείται ένα σύνολο (τμήμα) εντολών (που ονομάζεται if-block),

διαφορετικά (else) γίνεται επεξεργασία ενός άλλου συνόλου εντολών (που ονομάζεται

else-block). Η χρήση του όρου else είναι προαιρετική.

Οι όροι elif και else είναι προαιρετικοί και είναι δυνατό να υπάρχουν αρκετοί όροι elif.

Δεν απαιτούνται κάποιου είδους αγκύλες ή άγκιστρα για το διαχωρισμό των τμημάτων.

Κάθε σύνολο που αποτελεί ξεχωριστό τμήμα αποτελείται από μια ή περισσότερες

προτάσεις που διαχωρίζονται με νέα γραμμή. Όλες οι προτάσεις πρέπει να έχουν το

ίδιο επίπεδο εσοχής. Στο παράδειγμα παρακάτω ελέγχεται ένας αριθμός που

πληκτρολογείται στη γραμμή εντολών.

3.3.3 Ο βρόχος while

Η εντολή while σας επιτρέπει να εκτελείτε επανειλημμένα ένα τμήμα εντολών, όσο μια

προϋπόθεση παραμένει αληθής. Η εντολή while είναι ένα παράδειγμα αυτού που

Page 35: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 35/100

35

αποκαλείται εντολή βρόχου (looping statement). Μια εντολή while μπορεί να έχει έναν

προαιρετικό όρο else.

3.3.4 Ο βρόχος for

Ο βρόχος for είναι απλός αλλά ισχυρός, γιατί είναι δυνατόν να μετακινηθείτε σε

οποιαδήποτε τύπο που έχει τη μορφή ακολουθίας, όπως μια λίστα ή πλειάδα. Σε

αντίθεση με πολλές γλώσσες, στην Python ο βρόχος for επαναλαμβάνεται σε καθένα

από τα στοιχεία στη σειρά, περισσότερο σαν ένα βρόχο foreach.

ΥΠΟΕΝΟΤΗΤΑ 4. PYTHON ΣΤΟ ΔΙΑΔΙΚΤΥΟ

Στα πλαίσια της υποενότητας αυτής θα:

περιγραφεί η δυνατότητα προγραμματισμού σε Python στο υπολογιστικό νέφος

μέσω υπηρεσιών που παρέχονται από σχετικούς ιστότοπους, καθώς και η χρήση

τους για την εκτέλεση απλών εντολών, και

γίνει αναφορά στην κοινότητα της Python και τις δυνατότητες που παρέχει σε

ενδιαφερόμενους χρήστες.

4.1 Προγραμματισμός Python στο υπολογιστικό νέφος

Μια νέα σχετικά τάση η οποία ακολουθεί το παράδειγμα (paradigm) της υπολογιστικής

νέφους (cloud computing) είναι η μεταγλώττιση ή γενικότερα η παροχή περιβάλλοντος

ανάπτυξης κώδικα και μεταγλώττιση ή διερμηνεία ως υπηρεσία. Με λίγα λόγια, σε πολύ

γενικές γραμμές είναι δυνατό να χρησιμοποιήσει κάποιος ένα μεταγλωττιστή ή

διερμηνευτή χωρίς να τον έχει εγκαταστήσει προηγουμένως στον υπολογιστή του. Έτσι,

υπάρχουν διαθέσιμοι διερμηνευτές Python στο διαδίκτυο όπου ένας προγραμματιστής

έχει τη δυνατότητα να γράψει και να εκτελέσει προγράμματα στη γλώσσα. Αυτοί οι

διερμηνευτές είναι προσπελάσιμοι μέσω σχετικών ιστοσελίδων και παρέχουν όχι μόνο

τις βασικές δυνατότητες επεξεργασίας κειμένου, αποθήκευσης αλλά και περισσότερο

προχωρημένες υπηρεσίες κατά περίπτωση.

Οι υπηρεσίες αυτού του τύπου απευθύνονται τόσο σε αρχάριους όσο και

επαγγελματίες και παρέχονται είτε δωρεάν ή με κάποιο μοντέλο χρέωσης, το οποίο

εξαρτάται από την υπηρεσία. Οι δωρεάν υπηρεσίες υπολείπονται γενικά σε δυνατότητες

και βιβλιοθήκες, αλλά παρέχουν σημαντική βοήθεια τόσο στην εκπαίδευση όσο και

Page 36: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 36/100

36

ευκολία όταν ο υπολογιστής με το πλήρες περιβάλλον δεν είναι διαθέσιμος και υπάρχει

ανάγκη για κάποιο γρήγορο πρωτότυπο. Οι υπηρεσίες αντίθετα που απευθύνονται σε

επαγγελματίες παρέχουν ποικιλία δυνατοτήτων και πάντοτε σε συνάρτηση με το

αντίστοιχο κόστος.

Η συγκεκριμένη τάση αξίζει της αναφοράς μας, καθώς αποτελεί μια γενικότερη εξέλιξη

στον τομέα του λογισμικού και ενδέχεται στο μέλλον να αποτελέσει βασική επιλογή για

τον χώρο και ειδικότερα για το πεδίο της Επιστήμης Δεδομένων.

Το πλεονέκτημα των υπηρεσιών που παρέχονται κατά αυτό τον τρόπο είναι ότι είναι

προσπελάσιμες από κάποιον, όταν θέλει να γράψει κώδικα Python, χωρίς να απαιτείται

ο υπολογιστής του με το περιβάλλον εγκατεστημένο. Ακόμη και ένας φορητός ή

υπολογιστής χειρός είναι αρκετός ώστε να γράψει κώδικα Python σε χρόνο και χώρο

που επιθυμεί.

Από την άλλη πλευρά, το μειονέκτημα είναι ότι οι δωρεάν ιστότοποι συνήθως

απευθύνονται στον απλό προγραμματιστή ή εκπαιδευόμενο και δεν παρέχουν οι

δυνατότητες της γλώσσας όλες τις βιβλιοθήκες. Γενικά, δεν είναι εφικτό να

παρασχεθούν οι πλήρεις δυνατότητες που παρέχονται από μια τοπική εγκατάσταση σε

υπολογιστή, ωστόσο, υπάρχουν ορισμένοι ιστότοποι που παρέχουν αναβαθμισμένες

υπηρεσίες με κάποια συνδρομή. Ο ενδιαφερόμενος μπορεί να αναζητήσει σχετικές

διευθύνσεις στο διαδίκτυο όπου παρέχονται πληροφορίες τόσο για το τι προσφέρει η

κάθε υπηρεσία όσο και τυχόν κόστος.

4.2 Κοινότητα Python και ανάπτυξη της γλώσσας

Η Python είναι γλώσσα ανοικτού κώδικα. Ως τέτοια έχει μια μεγάλη και εξαιρετικά ενεργή

κοινότητα ανάπτυξης που ανταποκρίνεται σε διάφορα ζητήματα που ανακύπτουν και

αναπτύσσει βελτιώσεις με ταχύτητα που είναι αξιοζήλευτη ακόμη και για λογισμικό το

οποίο είναι εμπορικό. Οι προγραμματιστές Python εργάζονται αυτόνομα ή σε συνεργασία και με τη βοήθεια συστήματος ελέγχου πηγαίου κώδικα συντονίζεται η

συντήρηση του κώδικα και των μεταβολών. Οι αλλαγές πλέον ακολουθούν την λογική

ενός εμπορικού λογισμικού και δρομολογούνται με τυπικό πρωτόκολλο, το οποίο

περιλαμβάνει τη σύνταξη μιας πρότασης PEP (Python Enhancement Proposal) ή άλλο

έγγραφο, σε αντίθεση με την αρχική περίοδο όπου αρκούσε ένα email.

Ως προς την γενικότερη παρουσία της Python, το PSF (Python Ίδρυμα Λογισμικού) είναι

μια μη κερδοσκοπική ομάδα που διοργανώνει συνέδρια και ασχολείται με θέματα

πνευματικής ιδιοκτησίας. Πολυάριθμα συνέδρια Python πραγματοποιούνται σε όλο τον

Page 37: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 37/100

37

κόσμο με εκείνο του PSF να είναι το σημαντικότερο. Ενδεικτικό της εξέλιξης της γλώσσας

είναι ότι ενώ στα αρχικά συνέδρια η συμμετοχή ήταν όσο και οι θαμώνες ενός

εστιατορίου, το 2012 και 2013 η συμμετοχή ανήλθε σε 2.500 και έπρεπε να θέσουν και

ανώτατο όριο συμμετοχών.

Αν και η Python έχει μια αξιοζήλευτη κοινότητα, είναι σημαντικό να σημειωθεί ότι αυτό

συνεπάγεται και ορισμένες εγγενείς αδυναμίες. Τα έργα ανοικτού κώδικα συχνά

ταυτίζονται με τις προσωπικές προτιμήσεις των προγραμματιστών της, που δεν είναι

όμως δεσμευμένοι στο πλαίσιο μιας εταιρίας αλλά εργάζονται κατά βάση στον

ελεύθερο χρόνο τους. Έτσι, το λογισμικό ανοικτού κώδικα δείχνει κάπως χαοτικό ως

προς την ανάπτυξή του και άναρχο ως προς τον έλεγχό του και κατά καιρούς δεν είναι

τα πάντα τόσο ομαλά όσο θα έπρεπε. Για παράδειγμα, η Python 3.2.0 είχε σφάλματα

στη λειτουργία εισόδου της κονσόλας στα Windows. Ωστόσο, συνήθως η ανάπτυξή

του οδηγείται από ένα πυρήνα προγραμματιστών και το αποτέλεσμα είναι ότι η εξέλιξη

του λογισμικού ανοικτού κώδικα, αν και συχνά οδηγείται από λίγους, επιβάλλεται τελικά

στην ευρύτερη κοινότητα από την οποία και επωφελείται επίσης σημαντικά.

Σύνοψη

Με την ολοκλήρωση της ενότητας αυτής μάθατε:

ότι η Python είναι μια γλώσσα προγραμματισμού γενικής χρήσης εξαιρετικά

δημοφιλής,

• τις ιδιότητες και τα χαρακτηριστικά της γλώσσας,

• τα δυνατά και αδύνατα σημεία της,

• ότι αυτά την καθιστούν ιδιαίτερα εύκολη στην εκμάθηση και ευανάγνωστη,

• ότι η έκδοση 3.x της γλώσσας αποτελεί τομή στην ιστορική εξέλιξη της γλώσσας

καθώς δεν διατηρεί την προς τα πίσω συμβατότητα,

τις χρήσεις της και την διάδοσή της σε πλήθος εφαρμογών,

• αρκετούς ιστότοπους που παρέχουν περιβάλλον ανάπτυξης και εκτέλεσης

σεναρίων και απλών προγραμμάτων και είσαστε σε θέση να χρησιμοποιήσετε

ορισμένα για εκτέλεση βασικών εντολών,

• ότι υπάρχει μια σημαντική κοινότητα που στηρίζει την ανάπτυξη της γλώσσας,

• πώς να εγκαταστήσετε την Python στον υπολογιστή σας,

• πώς να χρησιμοποιήσετε τον διαδραστικό διερμηνευτή για να εκτελέσετε

προγράμματα και σενάρια,

Page 38: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 38/100

38

• πώς να χρησιμοποιήσετε τον περιβάλλον IDLE για να δημιουργήσετε και να

εκτελέσετε προγράμματα και σενάρια,

• ποια είναι η βασική λειτουργία κατά την εκτέλεση ενός προγράμματος,

• ποια είναι ορισμένα από τα βασικά στοιχεία της γλώσσας συνοπτικά, και

• πώς να γράψετε και να εκτελέσετε απλά προγράμματα.

Page 39: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 39/100

39

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

Προγράμματα Συμπληρωματικής Εκπαίδευσης

Με τη χρήση καινοτόμων μεθόδων εξ αποστάσεως εκπαίδευσης

1404 - ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PYTHON

ΔΙΔΑΚΤΙΚΗ ΕΝΟΤΗΤΑ 2. ΒΑΣΙΚΕΣ ΑΡΧΕΣ – ΣΥΜΒΟΛΟΣΕΙΡΕΣ – ΛΙΣΤΕΣ –

ΠΛΕΙΑΔΕΣ

Page 40: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 40/100

40

Page 41: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 41/100

41

Εισαγωγικές Παρατηρήσεις

Σε αυτή την ενότητα οι εκπαιδευόμενοι έρχονται σε επαφή με τα πρώτα στοιχεία της

γλώσσας τα οποία αποτελούν τη βάση για την δημιουργία ολοκληρωμένων σεναρίων

και προγραμμάτων. Είναι θεμελιώδη τόσο για την συγγραφή όσο και για την

κατανόηση προγραμμάτων.

Στην πρώτη υποενότητα παρουσιάζονται οι βασικές αρχές που ισχύουν στη γλώσσα

και παρέχονται παραδείγματα. Στην δεύτερη υποενότητα παρουσιάζονται αναλυτικά οι

συμβολοσειρές με αρκετά παραδείγματα για κατανόηση και εκτέλεση από τον

εκπαιδευόμενο. Στην τρίτη υποενότητα αναπτύσσονται οι λίστες και στην τέταρτη οι

πλειάδες με αρκετά παραδείγματα επίσης.

Page 42: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 42/100

42

ΥΠΟΕΝΟΤΗΤΑ 1. ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΤΗΣ PYTHON

Στα πλαίσια της υποενότητας αυτής θα παρουσιαστούν:

τα βασικά στοιχεία για τη δόμηση ενός προγράμματος Python, οι αναθέσεις τιμών σε μεταβλητές, και

οι εκφράσεις, οι αριθμητικοί τύποι και ο τύπος none.

1.1 Δόμηση και στυλ κώδικα

Στην Python τα προγράμματα εκτελούνται είτε δια μέσου της γραμμής εντολών ως

σύντομα σενάρια ή ως ολοκληρωμένα προγράμματα όπου ο πηγαίος κώδικάς τους

είναι αποθηκευμένος σε αρχεία κειμένου. Σε κάθε περίπτωση ο κώδικας πρέπει να είναι

οργανωμένος με βάση το στυλ της γλώσσας και να βοηθά τον προγραμματιστή τόσο

στην ανάγνωση όσο και στην συντήρησή του. Δυο πολύ σημαντικά στοιχεία που

βοηθούν προς την κατεύθυνση αυτή είναι η χρήση σχολίων και η τήρηση των κανόνων

βέλτιστης πρακτικής προγραμματισμού εν γένει.

Σε κάθε πρόγραμμα Python μπορούμε να ενσωματώσουμε σχόλια τα οποία

καθοδηγούν τον προγραμματιστή, ή όποιον διαβάζει τον κώδικα, και βοηθούν τη

συντήρησή του. Επίσης, ένα στοιχείο που είναι σημαντικό και διαφοροποιεί την Python

από τις περισσότερες γλώσσες προγραμματισμού είναι ο τρόπος οργάνωσης του

κώδικα σε τμήματα, τα οποία καθορίζονται από το επίπεδο εσοχής τους.

1.1.1 Σχόλια

Στην Python οτιδήποτε ακολουθεί (δεξιά του) το σύμβολο # εκλαμβάνεται ως σχόλιο και

δεν λαμβάνεται υπόψη κατά την εκτέλεση του προγράμματος. Το χρησιμοποιούμε αν

θέλουμε να θεωρηθεί σχόλιο το σύνολο μιας γραμμής ή μόνο το τμήμα δεξιά από μια

εντολή. Το σχόλιο γραμμής το χρησιμοποιούμε για να οδηγήσουμε τον αναγνώστη του

κώδικα να καταλάβει ποια λειτουργία εκτελούμε με το συγκεκριμένο τμήμα κώδικα. Όταν

το τοποθετούμε στην αρχή μιας συνάρτησης ή τμήματος κώδικα περιγράφουμε την

λειτουργία του τμήματος, ενώ όταν το θέτουμε σε μια γραμμή συνήθως δίνουμε κάποια

διευκρίνιση για μια μεταβλητή ή κάποια μικρή εξήγηση.

Page 43: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 43/100

43

Αν όμως το σύμβολο # εμπεριέχεται σε κάποια συμβολοσειρά (περικλείεται από

εισαγωγικά “ “), τότε δεν αποτελεί σχόλιο ό,τι βρίσκεται δεξιά από αυτό. Για παράδειγμα:

Γενικά, προσπαθούμε να μην υπερφορτώνουμε τον κώδικα με σχόλια, αλλά να

παρέχουμε μόνο τα αναγκαία για την κατανόηση των σημείων που δεν είναι ευκρινή.

Στην κατανόηση βασικό ρόλο παίζει και η ορθή επιλογή ονομάτων, μεταβλητών και

αντικειμένων.

1.1.2 Τμήματα κώδικα

Αρκετές γλώσσες προγραμματισμού χρησιμοποιούν ειδικούς χαρακτήρες, όπως

άγκιστρα ή παρενθέσεις, για τον καθορισμό των τμημάτων κώδικα, όπως βρόχων,

συναρτήσεων ή κλάσεων. Η Python, σε αντίθεση με τις περισσότερες από αυτές, δεν

χρησιμοποιεί ειδικούς χαρακτήρες1. Αντίθετα, στην Python χρησιμοποιούνται εσοχές

(indentation). Το σκεπτικό της Python είναι ότι ο κώδικας πρέπει να εμφανίζεται με όσο

το δυνατό απλούστερη μορφή, ώστε να είναι ευανάγνωστος. Έτσι, οι εσοχές

καθορίζουν τα τμήματα κώδικα και τα διαχωρίζουν μεταξύ τους. Για την δημιουργία

1

Αρκετές γλώσσες χρησιμοποιούν άγκιστρα και για να καθορίσουν τα όρια τμημάτων κώδικα, όπως ενός βρόχου while. Ο κώδικας μπορεί να περιλαμβάνει και κάποιες εσοχές για να είναι ευανάγνωστος,

αλλά αυτό δεν είναι αναγκαίο για την ορθότητά του.

Page 44: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 44/100

44

εσοχών χρησιμοποιούνται οι χαρακτήρες διαστήματος (space characters) ή οι

στηλοθέτες (tabs) και η Python καταλαβαίνει αυτόματα ποια τμήματα κώδικα

αποτελούν ενιαία σύνολα. Αν οι εσοχές δεν είναι κατάλληλα ορισμένες, θα λάβουμε

σφάλμα σύνταξης.

Για παράδειγμα, όταν ορίζουμε μια συνάρτηση στην Python, ως σώμα της

συνάρτησης θεωρείται αυτό που ορίζεται από την κατάλληλη εσοχή.

Επίσης όταν έχουμε πολλαπλούς βρόχους, συνήθως απαιτούνται πολλαπλά επίπεδα

εσοχών, που κατά κάποιο τρόπο είναι εμφωλευμένα το ένα μέσα στο άλλο. Για

παράδειγμα:

Η χρήση εσοχών για την οργάνωση του κώδικα παρέχει αρκετά πλεονεκτήματα, όπως

καλύτερη δόμηση του κώδικα, εύκολη κατανόησή του, αποφυγή λαθών όταν το

πλήθος γραμμών κώδικα είναι σημαντικό και σχετικά ομοιογενές στυλ κώδικα.

Γενικά, συνίσταται η χρήση είτε ενός μονού στηλοθέτη (1 tab) ή τεσσάρων

χαρακτήρων διαστήματος (4 spaces) για κάθε επίπεδο εσοχής. Μπορείτε να επιλέξετε

ένα από τα δύο στυλ εσοχών. Αλλά το σημαντικότερο είναι να επιλέξετε ένα από αυτά

και να το χρησιμοποιείτε σταθερά, δηλαδή να συνηθίσετε αυτό το στυλ μόνο κατά τη

συγγραφή του κώδικά σας. Αν και μπορεί να ακούγεται δύσκολη η τήρηση του

παραπάνω κανόνα από τον προγραμματιστή, τα περισσότερα ολοκληρωμένα

Page 45: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 45/100

45

περιβάλλοντα προγραμματισμού Python, όπως το IDLE, παρέχουν αυτόματη

δημιουργία εσοχών σε κάθε νέα γραμμή.

Ένα σημείο που χρειάζεται προσοχή στην γραμμή εντολών είναι ότι δεν πρέπει να

υπάρχουν χαρακτήρες διαστήματος πριν από μια εντολή, καθώς ο διερμηνευτής θα

επιστρέψει σφάλμα. Για παράδειγμα:

Οι εντολές μπορεί να διασπαστούν σε περισσότερες από μια γραμμές με την χρήση

του χαρακτήρα \.

Τέλος, η Python δεν απαιτεί κάποιο χαρακτήρα τέλους γραμμής (όπως τον χαρακτήρα

;). Η γραμμή εντολής τελειώνει με την νέα γραμμή (Enter).

1.2 Μεταβλητές

Η χρήση μεταβλητών στην Python ακολουθεί εν γένει την λογική χειρισμού των

μεταβλητών των περισσότερων γλωσσών προγραμματισμού. Όταν αναφερόμαστε σε

μια μεταβλητή (variable) ουσιαστικά εννοούμε μια περιοχή μνήμης στον υπολογιστή

μας, ή σε όποιο υπολογιστικό σύστημα εκτελείται το πρόγραμμά μας, η οποία μπορεί

σε γενικές γραμμές να λάβει οποιαδήποτε τιμή.

Η τιμή που λαμβάνει μια μεταβλητή καθορίζεται από την ανάθεση που εμείς

πραγματοποιούμε σε αυτή είτε απευθείας ή δια μέσου κάποιου τμήματος κώδικα. Η

ανάθεση τιμής σε μια μεταβλητή είναι η συνηθέστερη εντολή στην Python και είναι

παραπλήσια με ό,τι ισχύει στις άλλες γλώσσες προγραμματισμού.

Page 46: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 46/100

46

Για την δημιουργία μιας μεταβλητής και την ανάθεση τιμής σε αυτή χρησιμοποιείται ο

τελεστής εκχώρησης =. Για παράδειγμα η δημιουργία της μεταβλητής x και η ανάθεση

σε αυτή της τιμής 5 ή η ανάθεση μιας συμβολοσειράς σε αυτή πραγματοποιείται ως

εξής:

Σε αντίθεση τώρα με τις μεταβλητές, υπάρχει και ο όρος κυριολεκτική σταθερά (literal

constant), που είναι κάτι το οποίο ορίζεται κυριολεκτικά και δε μεταβάλλεται. Για παράδειγμα, ο αριθμός 15 ή η συμβολοσειρά “μια συμβολοσειρά” αποτελούν

κυριολεκτικές σταθερές, καθώς παριστούν τον εαυτό τους και τίποτε διαφορετικό. Όταν

δίνουμε μια εντολή, όπως η παρακάτω, δεν συμβαίνει κάτι πέρα από την δήλωση μιας

κυριολεκτικής σταθεράς.

Τα ονόματα μεταβλητών επιτρέπεται να είναι πεζά ή και κεφαλαία και μπορεί να

περιέχουν οποιονδήποτε αλφαριθμητικό χαρακτήρα, όπως επίσης και χαρακτήρα

υπογράμμισης (underscore), όμως πρέπει να ξεκινάνε με γράμμα ή χαρακτήρα

υπογράμμισης, διαφορετικά θα λάβουμε σφάλμα σύνταξης.

Page 47: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 47/100

47

Η Python δεν απαιτεί πρότερη δήλωση της μεταβλητής (declaration) πριν την ανάθεση

τιμής σε αυτή, και μια μεταβλητή μπορεί να λάβει τιμές από οποιονδήποτε τύπο χωρίς

κανένα πρόβλημα. Σε αντίθεση με άλλες γλώσσες, όπως για παράδειγμα η C, στις

οποίες οι μεταβλητές μπορούν να αποθηκεύσουν τιμές μόνο για τον τύπο τον οποίο

έχουμε προηγουμένως δηλώσει.

Για παράδειγμα, η μεταβλητή x παρακάτω αναφέρεται αρχικά σε ένα αντικείμενο που

είναι συμβολοσειρά και λαμβάνει την τιμή “Καλημέρα”, ενώ έπειτα αναφέρεται σε ένα

αντικείμενο που είναι ακέραιος και λαμβάνει την τιμή 5. Γενικότερα, πάντως, δεν είναι

δόκιμο να χρησιμοποιούμε κάτι τέτοιο, καθώς η εναλλαγή τύπων σε μια μεταβλητή

μπορεί να δημιουργήσει σύγχυση κατά την ανάγνωση ενός προγράμματος και να

δυσκολέψει την συντήρησή του. Εντούτοις, είναι απόλυτα σωστό και κάθε νέα ανάθεση

υπερκαλύπτει την προηγούμενη.

Για να διαγράψουμε μια μεταβλητή χρησιμοποιούμε την εντολή del. Από τη στιγμή που

θα διαγράψουμε μια μεταβλητή η αναφορά σε αυτή παράγει σφάλμα.

Page 48: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 48/100

48

1.3 Αριθμοί

Σε γενικές γραμμές στην Python ισχύει ό,τι ισχύει και σε άλλες γλώσσες ως προς τους

αριθμούς. Η Python υποστηρίζει αριθμητικές και αλγεβρικές εκφράσεις κάθε μορφής.

Στις αριθμητικές εκφράσεις ισχύουν οι γνωστοί κανόνες προτεραιότητας εκτέλεσης των

πράξεων. Οι αλγεβρικές εκφράσεις δεν είναι αναγκαίο να περιλαμβάνουν αποκλειστικά αριθμούς, αλλά μπορεί να περιέχουν συμβολοσειρές, δυαδικές τιμές, και άλλους

τύπους αντικειμένων.

Ειδικότερα, ως προς τους αριθμούς ισχύουν τα εξής. Η Python προσφέρει τέσσερις

τύπους αριθμών: ακέραιους, κινητής υποδιαστολής, μιγαδικούς, και δυαδικούς.

Ένας ακέραιος έχει τη μορφή αριθμού (θετικού ή αρνητικού) και είναι δυνατό να έχει

απεριόριστό μέγεθος, το οποίο περιορίζεται μόνο από τις δυνατότητες του υπολογιστή.

Για παράδειγμα: 0, -1, +303, 22869345.

Ένας αριθμός κινητής υποδιαστολής γράφεται με υποδιαστολή ή χρησιμοποιώντας

επιστημονικό συμβολισμό: 13.334, -5Ε-12, 2.44444477. Η ακρίβειά του καθορίζεται από

τον υπολογιστή αλλά σε γενικές γραμμές είναι ισοδύναμη με τον τύπο διπλής ακρίβειας

(double 64-bit) της C.

Οι δυαδικοί αριθμοί λαμβάνουν την τιμή True ή False και συμπεριφέρονται όπως οι 0 και

1, εκτός αν πρόκειται για την αναπαράστασή τους ως συμβολοσειρές.

Οι μιγαδικοί αριθμοί δημιουργούνται αυτόματα όταν χρησιμοποιείται μια έκφραση της

μορφής nj, όπου n μπορεί να είναι ακέραιος αριθμός ή αριθμός κινητής υποδιαστολής.

Η Python εκφράζει το αποτέλεσμα πράξεων μιγαδικών σε παρενθέσεις. Για παράδειγμα:

Page 49: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 49/100

49

Οι μιγαδικοί δεν μετατρέπονται ποτέ σε ισοδύναμο ακέραιο ή πραγματικό αριθμό. Τα

πραγματικά και φανταστικά τους τμήματα είναι εύκολο να ανακτηθούν με τις μεθόδους

real και imag και πάντοτε επιστρέφονται ως αριθμοί κινητής υποδιαστολής. Για

παράδειγμα:

Οι αριθμοί στην Python έχουν δύο πλεονεκτήματα σε σχέση με την Java και τη C.

Πρώτον, οι ακέραιοι μπορούν να λάβουν οποιαδήποτε τιμή σε μέγεθος και, δεύτερον, η

διαίρεση δύο ακεραίων καταλήγει σε αριθμό κινητής υποδιαστολής.

Με τους αριθμούς μπορούμε να εργαστούμε είτε απευθείας από την γραμμή εντολών

για την εκτέλεση αριθμητικών πράξεων μεταξύ κυριολεκτικών σταθερών, ή με την

ανάθεση τιμών σε μεταβλητές και την εκτέλεση εντολών με διάφορες αλγεβρικές

παραστάσεις. Το περιβάλλον του διαδραστικού διερμηνευτή μπορεί να χρησιμοποιηθεί

ως αριθμομηχανή, αρκεί να έχουμε υπόψη μας τους περιορισμούς της γλώσσας.

Ορισμένα παραδείγματα χρήσης αριθμών δίνονται παρακάτω.

Page 50: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 50/100

50

Επίσης παρακάτω δίνουμε ορισμένα παραδείγματα με αλγεβρικές εκφράσεις:

Page 51: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 51/100

51

Συνιστάται να εκτελέσετε ορισμένα αντίστοιχα παραδείγματα χρησιμοποιώντας

διαφορετικές τιμές για εξοικείωση με τη χρήση του διαδραστικού διερμηνευτή και την

χρήση μεταβλητών.

1.3.1 Αριθμητικές συναρτήσεις και υπολογισμοί

Η Python περιέχει ένα βασικό πυρήνα βιβλιοθηκών με αριθμητικές συναρτήσεις.

Ορισμένες από αυτές είναι οι abs, divmod, float, hex, int, long, max, min, round. Οι

περισσότερο προχωρημένες αριθμητικές συναρτήσεις, όπως οι τριγωνομετρικές, δεν

είναι ενσωματωμένες στον βασικό πυρήνα αλλά παρέχονται από το δομοστοιχείο

math.

Το δομοστοιχείο math περιλαμβάνει αρκετές επιπλέον συναρτήσεις και σταθερές,

όπως: acos, asin, atan, atan2, cos, cosh, e, exp, floor, hypot, log, log10, mod, pi, pow,

sin, sinh, sqrt, tan, tanh.

Οι συναρτήσεις του βασικού πυρήνα βιβλιοθηκών είναι διαθέσιμες ανά πάσα στιγμή

στον προγραμματιστή, ενώ οι επιπλέον όχι. Για να είναι αυτές διαθέσιμες στον

προγραμματιστή, θα πρέπει το δομοστοιχείο math να εισαχθεί στο πρόγραμμα ή το

σενάριο που εκτελούμε με την παρακάτω εντολή:

Page 52: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 52/100

52

Για παράδειγμα:

Η βασική εγκατάσταση της Python δεν είναι γενικά η καταλληλότερη έκδοση για

απαιτητικούς αριθμητικούς υπολογισμούς λόγω περιορισμών στην ταχύτητα. Η

επέκταση NymPy της Python είναι πολύ ισχυρή και παρέχει υψηλής απόδοσης

υλοποιήσεις αρκετών προχωρημένων αριθμητικών λειτουργιών.

Αναλυτική τεκμηρίωση για τη χρήση των παραπάνω μαθηματικών συναρτήσεων

παρέχεται από τον ιστότοπο της Python. Ανάλογα με την έκδοση της Python που έχετε,

ενδέχεται ορισμένες εκδόσεις ή χαρακτηριστικά των συναρτήσεων να μην

υποστηρίζονται ή να έχουν αντικατασταθεί από νεότερα.

1.4 Ειδικά σημεία

Τα προηγούμενα στοιχεία και δυνατότητες είναι λίγο πολύ συνήθη στις περισσότερες

γλώσσες. Η Python, εκτός από τους συνήθεις τύπους δεδομένων, όπως συμβολοσειρές και αριθμούς, περιλαμβάνει ένα ειδικό βασικό τύπο δεδομένων που

ορίζει ένα ειδικό αντικείμενο δεδομένων. Πρόκειται για τον τύπο που ονομάζεται None.

Αυτός χρησιμοποιείται για να αναπαραστήσει μια κενή τιμή και χρησιμοποιείται σε

διάφορες περιπτώσεις. Για παράδειγμα, μια διεργασία στην Python είναι μια συνάρτηση

που δεν επιστρέφει κάποια τιμή, πράγμα που σημαίνει ότι, από προεπιλογή, επιστρέφει

None. Ο τύπος None είναι συχνά χρήσιμος στον προγραμματισμό με Python ως

σύμβολο κράτησης θέσης. Στην περίπτωση αυτή υποδεικνύει ένα σημείο σε μια δομή

Page 53: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 53/100

53

δεδομένων, όπου τελικά θα καταλήξουν σημαντικά δεδομένα, ακόμη και αν τα

δεδομένα δεν έχουν ακόμη υπολογιστεί.

Τέλος, κάτι που είναι χρήσιμο σε αυτό το σημείο, η εισαγωγή δεδομένων από τον

χρήστη μπορεί να γίνει με την χρήση της συνάρτησης input( ) από την γραμμή

εντολών.

Η εισαγωγή από την γραμμή εντολών καταγράφεται στην μεταβλητή ως

συμβολοσειρά, οπότε σε περίπτωση που υπάρχει ανάγκη για ακέραιο αριθμό θα

πρέπει να χρησιμοποιηθεί η συνάρτηση int( ) ή float( ) για να μετατραπεί η

συμβολοσειρά σε ακέραιο.

ΥΠΟΕΝΟΤΗΤΑ 2. ΣΥΜΒΟΛΟΣΕΙΡΕΣ

Στα πλαίσια αυτής της υποενότητας θα παρουσιαστούν:

οι συμβολοσειρές,

οι βασικές λειτουργίες συμβολοσειράς,

οι βασικές μέθοδοι συμβολοσειράς.

2.1 Βασικά σημεία

Η επεξεργασία και διαμόρφωση κειμένου είναι πολύ βασική εργασία για τις γλώσσες

προγραμματισμού. Η Python παρέχει αρκετά εργαλεία για το σκοπό αυτό και ο

βασικότερος είναι η χρήση συμβολοσειρών. Μια συμβολοσειρά είναι μια ακολουθία

χαρακτήρων, η οποία οριοθετείται με κάποιο τρόπο. Στην Python οι συμβολοσειρές

ορίζονται με τη χρήση διπλών εισαγωγικών (“ “). Μια συμβολοσειρά μπορεί να

χρησιμοποιηθεί είτε ως κυριολεκτική σταθερά ή αν ανατεθεί ως τιμή σε μια μεταβλητή.

Page 54: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 54/100

54

Για παράδειγμα, αναθέτουμε στη μεταβλητή x την συμβολοσειρά “Καλημέρα” με την

παρακάτω εντολή:

Μια συμβολοσειρά μπορεί να περιέχει οποιοδήποτε εκτυπώσιμο χαρακτήρα και μπορεί

να έχει οποιαδήποτε κωδικοποίηση επιλέξουμε για τις ανάγκες μας. Η προεπιλεγμένη

κωδικοποίηση είναι η UTF-8. Εκτός από τους εκτυπώσιμους χαρακτήρες, μπορούμε σε

μια συμβολοσειρά να θέσουμε και ειδικούς χαρακτήρες, όπως η νέα γραμμή ή ο

στηλοθέτης. Αυτοί οι χαρακτήρες παριστάνονται σε μια συμβολοσειρά με μια

ακολουθία χαρακτήρων όπου τοποθετείται ο κάθε χαρακτήρας και η αριστερή πλάγια

κάθετος (backslash) πριν από αυτούς. Έτσι, για παράδειγμα, ο χαρακτήρας \n δηλώνει

τη νέα γραμμή, ο \t δηλώνει ένα στηλοθέτη, ο \\ δηλώνει ένα μονό χαρακτήρα \, και ο

\” δηλώνει ένα απλό διπλό εισαγωγικό κοκ . Για παράδειγμα:

Στην ανάθεση μιας συμβολοσειράς σε μια μεταβλητή μπορεί να χρησιμοποιηθούν και

απλά αντί για διπλά εισαγωγικά. Η μόνη διαφορά είναι ότι δεν υπάρχει ανάγκη για \” σε

συμβολοσειρές με απλά εισαγωγικά ή \’ σε συμβολοσειρές με διπλά εισαγωγικά.

Μια απλή συμβολοσειρά δεν μπορεί να διασπαστεί σε πολλές γραμμές, καθώς

παράγεται σφάλμα σύνταξης. Για το λόγο αυτό, η Python επιτρέπει τη δημιουργία

συμβολοσειρών με τριπλά εισαγωγικά. Επειδή οι περιπτώσεις χρήσης συμβολοσειρών

Page 55: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 55/100

55

είναι αρκετές, είναι σκόπιμη η εκτέλεση αρκετών παραδειγμάτων από τους

εκπαιδευόμενους για εξοικείωση με το αποτέλεσμα κάθε φορά.

Όταν χρησιμοποιούμε την συνάρτηση print για εκτύπωση μιας συμβολοσειράς, αυτή

προσθέτει ένα χαρακτήρα νέας γραμμής στο τέλος της συμβολοσειράς. Αν αυτό δεν

είναι επιθυμητό, τότε δίνουμε την παράμετρο end με τιμή .

Οι συμβολοσειρές μπορούν να θεωρηθούν ως ακολουθίες χαρακτήρων, ως λίστες

χαρακτήρων, κάτι που επιτρέπει την χρήση συμβολισμού πίνακα με δείκτη ή τμήμα

(index or slice notation). Με βάση αυτό μπορούμε να εξάγουμε κάποιο χαρακτήρα ή

τμήμα της συμβολοσειράς, όπως σε μια λίστα. Για παράδειγμα:

Μια συνηθισμένη χρήση του συμβολισμού τμήματος (slice) είναι η αποκοπή του χαρακτήρα νέας γραμμής από το τέλος μιας συμβολοσειράς. Αυτό είναι χρήσιμο όταν

Page 56: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 56/100

56

μια γραμμή διαβάζεται από αρχείο κειμένου. Επίσης μπορούμε να υπολογίσουμε τον

αριθμό των χαρακτήρων σε μια συμβολοσειρά με τη χρήση της συνάρτησης len,

όπως βρίσκουμε τον αριθμό στοιχείων σε μια λίστα.

Ωστόσο, οι συμβολοσειρές δεν είναι λίστες χαρακτήρων. Η πλέον σημαντική διαφορά

είναι ότι, αντίθετα με τις λίστες, οι συμβολοσειρές δεν μετατίθενται. Δηλαδή, αν

προσπαθήσουμε να εκτελέσουμε προσθήκη ή μεταβολή χαρακτήρα, όπως σε μια

λίστα, θα λάβουμε σφάλμα.

Τα αντικείμενα συμβολοσειράς έχουν μια σειρά από χρήσιμες μεθόδους που

επιστρέφουν τις ιδιότητες της συμβολοσειράς, αν για παράδειγμα αποτελείται από

αριθμητικά ψηφία ή αλφαβητικούς χαρακτήρες, αν έχει πεζούς ή κεφαλαίους

χαρακτήρες. Η τεκμηρίωση της γλώσσας παρέχει πλήρη κατάλογο όλων των μεθόδων.

2.2 Εργασίες συμβολοσειρών

Οι περισσότερες μέθοδοι που αφορούν σε συμβολοσειρές είναι ενσωματωμένες στην

Python και περιλαμβάνονται στη βασική κλάση string της Python. Αυτό έχει ως

αποτέλεσμα να είναι διαθέσιμες στον προγραμματιστή ανά πάσα στιγμή, καθώς όλα

τα αντικείμενα τύπου συμβολοσειράς τις περιέχουν αυτόματα. Οι μέθοδοι αυτές

καλούνται με τη χρήση συμβολισμού τελείας, δηλαδή τον συμβολισμό

«αντικείμενο.μέθοδος». Για παράδειγμα:

Page 57: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 57/100

57

Ένα σημαντικό σημείο είναι ότι οι συμβολοσειρές είναι αμετάθετες ως τύπος δεδομένων

και οι μέθοδοι χρησιμοποιούνται αποκλειστικά για την ανάκτηση της τιμής τους, ενώ δεν

μεταβάλουν καθόλου το αντικείμενο συμβολοσειράς επάνω στο οποίο λειτουργούν.

Στην συνέχεια παρουσιάζονται ορισμένες βασικές μέθοδοι συμβολοσειρών.

2.2.1 Διαχείριση διαστημάτων

Μια αρκετά συχνή και χρήσιμη εργασία που αφορά στις συμβολοσειρές είναι η

διαχείριση των διαστημάτων. Ειδικά κατά την ανάγνωση δεδομένων από αρχεία και τον

καθαρισμό τους προκύπτουν πολλές περιπτώσεις που πρέπει να χρησιμοποιηθούν οι

κατάλληλες μέθοδοι συμβολοσειρών. Αυτό είναι πολύ χρήσιμο στην περίπτωση

ανάγνωσης γραμμών από αρχείο, καθώς η Python πάντοτε διαβάζει ολόκληρη

γραμμή συμπεριλαμβάνοντας και τον χαρακτήρα νέας γραμμής, εάν υπάρχει.

Οι συναρτήσεις που παρέχονται από την Python είναι οι strip, lstrip και rstip.

Η strip επιστρέφει μια νέα συμβολοσειρά όμοια με την αρχική από την οποία έχουν

αφαιρεθεί τα κενά διαστήματα στην αρχή ή το τέλος της. Η lstrip μετακινεί τα κενά

διαστήματα από την αρχή αρχικής συμβολοσειράς και η rstrip μετακινεί τα κενά

διαστήματα από το τέλος της αρχικής συμβολοσειράς αντίστοιχα.

Εκτός από τους χαρακτήρες διαστήματος οι strip, rstrip, lstrip δέχονται ως όρισμα μια

συμβολοσειρά που περιέχει και χαρακτήρες που πρέπει να αφαιρεθούν από την

συμβολοσειρά. Η strip αφαιρεί όλους τους χαρακτήρες που υπάρχουν στο όρισμα

ανεξάρτητα από τη σειρά εμφάνισής τους. Για παράδειγμα:

Page 58: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 58/100

58

2.2.2 Αναζήτηση

Με τη χρήστη των βασικών μεθόδων αναζήτησης find, rfind μπορούμε να εκτελέσουμε

εργασίες αναζήτησης σε συμβολοσειρές. Η find βρίσκει τη θέση όπου εμφανίζεται ένα

τμήμα σε μια συμβολοσειρά διατρέχοντας τη συμβολοσειρά από την αρχή, ενώ η rfind

αναζητά όπως η find, αλλά διατρέχει τη συμβολοσειρά από το τέλος. Τέλος, υπάρχει και

η μέθοδος count που μετρά πόσες φορές εμφανίζεται ένα τμήμα συμβολοσειράς σε

μια άλλη συμβολοσειρά.

Ειδικότερα, η find λαμβάνει ένα υποχρεωτικό όρισμα και ένα ή δύο προαιρετικά

ορίσματα. Το υποχρεωτικό όρισμα είναι ένα τμήμα συμβολοσειράς. Αυτό αναζητείται

στη συμβολοσειρά αναφοράς και επιστρέφεται η θέση του πρώτου χαρακτήρα της

πρώτης εμφάνισης του τμήματος στη συμβολοσειρά ή -1 εάν το τμήμα δεν εμφανίζεται.

Η find αναζητά διατρέχοντας το σύνολο της συμβολοσειράς. Αν θέλουμε να ορίσουμε

μια συγκεκριμένη αφετηρία και ένα συγκεκριμένο τέρμα στην αναζήτηση, τότε

χρησιμοποιούνται τα δύο προαιρετικά ορίσματα. Το πρώτο όρισμα, ορίζει την αφετηρία

και το δεύτερο ορίζει το τέρμα. Για παράδειγμα:

Page 59: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 59/100

59

Η rfind λειτουργεί με τον ίδιο τρόπο όπως η find, εκτός από το ότι ξεκινά την αναζήτηση

από το τέρμα της συμβολοσειράς και έτσι επιστρέφει τη θέση του πρώτου χαρακτήρα

της τελευταίας εμφάνισης του τμήματος. Η rfind δέχεται επίσης ένα ή δύο προαιρετικά

ορίσματα με το ίδιο νόημα όπως η find.

Η count χρησιμοποιείται παρόμοια με οποιαδήποτε από τις παραπάνω μεθόδους αλλά

επιστρέφει τον αριθμό των εμφανίσεων ενός τμήματος σε μια συμβολοσειρά:

Επίσης, με την χρήση του τελεστή in μπορείτε να ελέγξετε για το αν ένας χαρακτήρας

βρίσκεται σε κάποια συμβολοσειρά:

2.2.3Μετατροπή

σε

αριθμό

Για τη μετατροπή μιας συμβολοσειράς σε ακέραιο ή αριθμό κινητής υποδιαστολής

μπορεί να χρησιμοποιηθεί η συνάρτηση int και float αντίστοιχα. Εάν το όρισμά τους

είναι κάποια συμβολοσειρά που δεν μπορεί να μετατραπεί σε αριθμό θα σημειωθεί

σφάλμα. Για παράδειγμα:

Page 60: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 60/100

60

2.2.4 Συνένωση και διαχωρισμός

Δύο ή περισσότερες συμβολοσειρές μπορούν να συνενωθούν σε μια, ενώ μια

συμβολοσειρά μπορεί να διαχωριστεί σε τμήματα.

Για την συνένωση συμβολοσειρών ο απλούστερος τρόπος είναι η χρήση του τελεστή

συνένωσης +. Εκτός αυτού, υπάρχει και η εναλλακτική χρήση του τελεστή επανάληψης

*. Για παράδειγμα:

Page 61: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 61/100

61

Η συνένωση συμβολοσειρών με τη χρήση του τελεστή + είναι χρήσιμη αλλά όχι

αποτελεσματική όταν ο αριθμός των συμβολοσειρών είναι μεγάλος γιατί κάθε φορά

που εφαρμόζεται ο τελεστής + δημιουργείται ένα νέο αντικείμενο συμβολοσειράς. Μια

προτιμότερη εναλλακτική είναι η χρήση της μεθόδου join. Η μέθοδος join λαμβάνει ως

ορίσματα τις συμβολοσειρές που θέλουμε να συνενώσουμε, και ταυτόχρονα δέχεται

ένα όρισμα το οποίο ορίζει το διαχωριστικό χαρακτήρα ή χαρακτήρες που θέλουμε να

τοποθετηθούν ως διαχωριστικό μεταξύ του κάθε τμήματος. Για παράδειγμα παρακάτω

συνθέτουμε τρεις συμβολοσειρές χρησιμοποιώντας τον κενό χαρακτήρα μεταξύ τους.

Μεταβάλλοντας το όρισμα στη join μπορούμε να τοποθετήσουμε οποιοδήποτε

διαχωριστικό ανάμεσα στις επιμέρους συμβολοσειρές και επίσης μπορεί να

χρησιμοποιηθεί και κενή συμβολοσειρά.

Για τον διαχωρισμό μιας συμβολοσειράς σε τμήματα χρησιμοποιούμε τη μέθοδο split. Η

μέθοδος split είναι αντίστροφη της join. Επιστρέφει μια λίστα από τμήματα μιας

συμβολοσειράς και η πλέον συνηθισμένη χρήση της είναι ως μηχανισμός συντακτικής

ανάλυσης σε αρχεία κειμένου. Η split χρησιμοποιεί ως προεπιλεγμένο χαρακτήρα

διαχωρισμού τον κενό χαρακτήρα, αλλά αυτό μπορεί να μεταβληθεί με τη χρήση του

ορίσματος που δέχεται όποια τιμή επιθυμούμε.

Με τη μέθοδο split έχουμε την ευελιξία να ορίσουμε πόσα τμήματα θα πρέπει να

δημιουργήσει η μέθοδος μέσω ενός προαιρετικού δεύτερου ορίσματος. Εάν καθορίσετε

ν τμήματα, η split θα εκτελέσει n διασπάσεις (δημιουργώντας ένα κατάλογο με n + 1

συμβολοσειρές ως στοιχεία) ξεκινώντας από την αρχή και μέχρι να εξαντληθεί η

Page 62: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 62/100

62

συμβολοσειρά. Να σημειωθεί ότι το όρισμα με τον αριθμό των τμημάτων απαιτεί και το

όρισμα με τον χαρακτήρα διαχωρισμού. Για παράδειγμα:

2.2.5 Τροποποίηση συμβολοσειρών

Οι συμβολοσειρές ως αντικείμενα είναι αμετάθετες. Δηλαδή, δεν υπάρχει δυνατότητα

για τον χειρισμό τους με τον ίδιο τρόπο όπως οι λίστες, δηλαδή ως ακολουθίες

αντικειμένων ή στοιχείων. Οι εργασίες που πραγματοποιούμε σε συμβολοσειρές

παράγουν νέες συμβολοσειρές αφήνοντας τις αρχικές αμετάβλητες. Για παράδειγμα:

Η τροποποίηση μιας συμβολοσειράς μπορεί να πραγματοποιηθεί με δύο τρόπους. Ο

ένας είναι με τη χρήση των κατάλληλων μεθόδων που παρέχει η string και ο δεύτερος με

τη μετατροπή τους σε λίστα χαρακτήρων. Οι μέθοδοι που εκτελούνται σε μια

συμβολοσειρά επιστρέφουν μια νέα συμβολοσειρά η οποία αποτελεί μια

τροποποιημένη έκδοση της αρχικής. Για παράδειγμα, με τη μέθοδο replace μπορεί να

αντικατασταθούν οι εμφανίσεις ενός τμήματος (το πρώτο όρισμα της μεθόδου) σε μια

συμβολοσειρά (το δεύτερο όρισμα).

Page 63: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 63/100

63

Υπάρχουν αρκετές συναρτήσεις οι οποίες εκτελούν πιο εξειδικευμένες εργασίες. Η

τεκμηρίωση της γλώσσας παρέχει λεπτομέρειες για όλες τις μεθόδους.

Όταν επιθυμούμε να εργαστούμε με τη συμβολοσειρά ως λίστα, τότε μετατρέπουμε τη

συμβολοσειρά σε λίστα χαρακτήρων, εκτελούμε τις εργασίες και στην συνέχεια

μετατρέπουμε την νέα λίστα σε συμβολοσειρά.

Η υπερβολική χρήση του παραπάνω θα πρέπει να αποφεύγεται, καθώς δημιουργεί και

καταστρέφει ένα νέο αντικείμενο string, κάτι το οποίο είναι σχετικά απαιτητικό σε

υπολογιστικούς πόρους.

2.3 Μορφοποίηση συμβολοσειράς

Η μορφοποίηση μιας συμβολοσειράς μπορεί να πραγματοποιηθεί με τη χρήση της

μεθόδου format της κλάσης string. Η μέθοδος format παρέχει απεριόριστες

δυνατότητες διαμόρφωσης μιας συμβολοσειράς και είναι σχετικά απλή. Ορισμένες

περιπτώσεις παρουσιάζονται στη συνέχεια.

Μια περίπτωση χρήσης είναι να χρησιμοποιηθεί η μέθοδος με παραμέτρους θέσης.

Αυτές καθορίζουν τα πεδία που θα αντικατασταθούν στην συμβολοσειρά αναφοράς

από τα ορίσματα που δίνονται στην format. συνάρτηση. Για παράδειγμα, παρακάτω η

συμβολοσειρά που θέλουμε να διαμορφώσουμε είναι η “0 1” που βρίσκεται στα

αριστερά της μεθόδου. Τα δύο πεδία είναι αριθμημένα. Τα πεδία αυτά θα

συμπληρωθούν από τις τιμές που έχει η format ως ορίσματα. Δηλαδή τις

συμβολοσειρές “Καλημέρα” και “Γιώργο”. Ανεξάρτητα από τη θέση που έχει το 0 και

το 1 στη συμβολοσειρά αναφοράς, αυτό θα αντικατασταθεί από την πρώτη

παράμετρο και δεύτερη αντίστοιχα.

Page 64: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 64/100

64

Εκτός του παραπάνω, η format αναγνωρίζει παραμέτρους και πεδία αντικατάστασης

με βάση το όνομα. Για παράδειγμα:

Με τη χρήση ειδικών ορισμών μπορεί να πετύχει κανείς δυνατότητες διαμόρφωσης

ακόμη ισχυρότερες και έλεγχο. Η σύνταξη των ορισμών διαμόρφωσης είναι μια

γλώσσα από μόνη της και είναι αρκετά σύνθετη για την κάλυψή της σε αυτό το σημείο.

Η τεκμηρίωση της γλώσσας παρέχει αναλυτικές οδηγίες για κάθε περίπτωση.

ΥΠΟΕΝΟΤΗΤΑ 3. ΛΙΣΤΕΣ

Στα πλαίσια της υποενότητας θα παρουσιαστούν και αναλυθούν:

τα βασικά στοιχεία της λίστας στην Python,

οι εργασίες σε λίστα,

η τροποποίηση λίστας, και

η ταξινόμηση λίστας.

3.1 Βασικά σημεία

Οι λίστες της Python είναι τύπος δεδομένων της Python και παρουσιάζει αρκετή

συγγένεια με τους πίνακες σε άλλες γλώσσες, ωστόσο είναι περισσότερο ευέλικτες και

ισχυρές. Μια λίστα στην Python είναι μια διατεταγμένη συλλογή από αντικείμενα και

δημιουργείται ως εξής: Εσωκλείετε μια λίστα από στοιχεία διαχωρισμένα με κόμμα σε

τετράγωνες αγκύλες [ ]. Για παράδειγμα:

Page 65: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 65/100

65

Δεν υπάρχει ανάγκη να δηλώσετε τη λίστα ή να ορίσετε το μέγεθός της προκαταβολικά.

Η παραπάνω εντολή δημιουργεί τη λίστα και αναθέτει σε αυτή τα στοιχεία. Επίσης,

αυξάνει ή μειώνεται σε μέγεθος αυτόματα όταν χρειάζεται.

Σε αντίθεση με τις λίστες σε άλλες γλώσσες, οι λίστες της Python μπορούν να περιέχουν

διαφορετικούς τύπους στοιχείων. Ένα στοιχείο λίστας μπορεί να είναι οποιοδήποτε

αντικείμενο Python. Για παράδειγμα:

Η πιο βασική ενσωματωμένη συνάρτηση λίστας είναι η συνάρτηση len η οποία

επιστρέφει τον αριθμό των στοιχείων σε μια λίστα.

3.2 Ευρετήριο

Τα στοιχεία μιας λίστας μπορεί να ανακτηθούν με τη χρήση συμβολισμού παρόμοιου

με ευρετηρίαση πινάκων. Η Python ξεκινά την αρίθμηση των στοιχείων της λίστας από

το 0, όπως και αρκετές γλώσσες. Όταν ζητάμε το στοιχείο 0, επιστρέφει το πρώτο

στοιχείο στη λίστα, όταν ζητάμε το στοιχείο 1, επιστρέφει το δεύτερο στοιχείο στη λίστα

και ούτω καθεξής. Ωστόσο, υπάρχει ευελιξία ως προς τη χρήση των δεικτών και

μπορούμε να ξεκινήσουμε από το τέλος της λίστας χρησιμοποιώντας αρνητική

αρίθμηση. Το -1 είναι το τελευταίο στοιχείο, το -2 το δεύτερο από το τέλος και ούτω

καθεξής.

Page 66: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 66/100

66

Η Python παρέχει τη δυνατότητα να εξάγουμε ή να εισάγουμε μια υπολίστα, κάτι που

είναι γνωστό ως τμηματοποίηση (slicing). Για να είναι εφικτό αυτό, χρησιμοποιούμε τον

συμβολισμό [m:n]. Σε αντίθεση με τον συμβολισμό [m] που αναφέρεται στοιχείο m, ο

συμβολισμός [m:n] αναφέρεται στο τμήμα της λίστας από το στοιχείο m έως το n. Με

αυτό τον τρόπο μπορούμε να λάβουμε τμήματα μιας λίστας.

Όταν τμηματοποιούμε μια λίστα είναι επιτρεπτό να μη δηλώσουμε κάποιο από τα m και

n. Αν δεν δηλώσουμε το m, τότε αυτό σημαίνει ότι ξεκινάμε από την αρχή της λίστας,

ενώ αν δε δηλώσουμε το n, σημαίνει ότι προχωράμε ως το τέλος της λίστας. Αν

παραλείψουμε και τους δύο δείκτες, δημιουργείται μια νέα λίστα που ξεκινά από την

αρχή και ολοκληρώνεται στο τέλος της αρχικής λίστας, δηλαδή αντιγράφει την αρχική

λίστα. Αυτή η λειτουργία είναι χρήσιμη όταν θέλουμε να δημιουργήσουμε ένα

αντίγραφο της λίστας, το οποίο να μετατρέψουμε χωρίς να αλλοιώσουμε την αρχική

λίστα.

Page 67: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 67/100

67

3.3 Τροποποίηση

Για την τροποποίηση μιας λίστας μπορούμε να χρησιμοποιήσουμε συμβολισμό δεικτών

όπως και για την εξαγωγή στοιχείων από αυτή. Για παράδειγμα:

Όπως και στην αναζήτηση, μπορούμε να μεταβάλουμε ένα μόνο στοιχείο της λίστας ή

τμήματά της. Στην πρώτη περίπτωση χρησιμοποιούμε τον συμβολισμό [m] για το

στοιχείο m και στη δεύτερη το συμβολισμό [m:n] για το τμήμα από το στοιχείο m έως το

n. Αυτό έχει ως αποτέλεσμα όλα τα στοιχεία της λίστας που βρίσκονται μεταξύ του m

και n. Για παράδειγμα:

Για την προσθήκη ενός στοιχείου στο τέλος της λίστας υπάρχει η μέθοδος append,

ενώ η extend, η οποία είναι όμοια με την append, επιτρέπει την προσθήκη μιας λίστας

στο τέλος μιας άλλης.

Page 68: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 68/100

68

Για την εισαγωγή νέων στοιχείων στη λίστα μεταξύ δύο υφιστάμενων στοιχείων υπάρχει

η μέθοδος insert. Η μέθοδος χρησιμοποιείται ως μέθοδος λίστας και δέχεται δύο

επιπλέον ορίσματα. Το πρώτο είναι η θέση στη λίστα όπου το νέο στοιχείο πρέπει να

εισαχθεί και το δεύτερο είναι το ίδιο το στοιχείο που θα εισαχθεί. Η insert αντιλαμβάνεται

τους δείκτες της λίστα όπως παρουσιάστηκαν προηγουμένως. Η χρήση της insert κάνει

τον κώδικα ευανάγνωστο και επιπλέον μπορεί να διαχειριστεί και αρνητικούς δείκτες.

Για την διαγραφή ενός στοιχείου ή τμήματος η προτιμώμενη μέθοδος είναι η del. Δεν

κάνει κάτι περισσότερο από ό,τι μπορεί να γίνει με τη χρήση συμβολισμού τμήματος,

αλλά είναι γενικότερα ευκολότερη στην ανάγνωση και χρήση.

Η μέθοδος remove δεν είναι η αντίθετη της insert. Ενώ η insert εισάγει ένα στοιχείο σε

μια καθορισμένη θέση, η remove αναζητά για την πρώτη εμφάνιση μιας δεδομένης

τιμής σε μια λίστα και την αφαιρεί από τη λίστα. Εάν η remove δεν βρει κάτι για να

αφαιρέσει, τότε προκαλεί σφάλμα.

Page 69: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 69/100

69

Η μέθοδος reverse είναι μια περισσότερο ειδικευμένη μέθοδος για τροποποίηση λίστας

και αναστρέφει μια λίστα.

3.4 Ταξινόμηση

Μια λίστα μπορεί να ταξινομηθεί με τη χρήση της μεθόδου sort. Η sort εκτελεί

ταξινόμηση στην ίδια τη λίστα αναφοράς, με αποτέλεσμα να μεταβάλλει το αντικείμενο

της λίστας. Ως προεπιλογή η sort χρησιμοποιεί ενσωματωμένες συναρτήσεις

σύγκρισης για τον καθορισμό της διάταξης των στοιχείων, που είναι ικανοποιητικός

στις περισσότερες περιπτώσεις. Για να ταξινομήσουμε μια λίστα χωρίς να

μεταβάλλουμε την αρχική χρειάζεται να δημιουργηθεί ένα αντίγραφό της αρχικά. Για

παράδειγμα:

Η ταξινόμηση λειτουργεί και με συμβολοσειρές επίσης:

Page 70: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 70/100

70

Η μέθοδος sort μπορεί να ταξινομήσει σχεδόν οτιδήποτε, επειδή η Python μπορεί να

συγκρίνει σχεδόν οτιδήποτε. Όμως υπάρχει ένας περιορισμός, καθώς η προεπιλεγμένη

μέθοδος που χρησιμοποιεί η sort απαιτεί όλα τα στοιχεία της λίστας να είναι συγκρίσιμοι

τύποι. Αν χρησιμοποιηθεί η sort σε μια λίστα που περιέχει τόσο αριθμούς όσο και

συμβολοσειρές, θα προκύψει σφάλμα.

3.5 Εργασίες λίστας

Μια σειρά από μεθόδους λίστας είναι χρήσιμοι αλλά δεν εμπίπτουν σε κάποια ειδική

κατηγορία. Παρακάτω παρουσιάζονται συνοπτικά ορισμένες.

Για τον έλεγχο συμμετοχής μιας τιμής σε μια λίστα χρησιμοποιούμε τον τελεστή in, ο

οποίος επιστρέφει μια δυαδική τιμή. Εκτός αυτού, υπάρχει και ο αντίθετος not in.

Για τη συνένωση δύο λιστών χρησιμοποιούμε τον τελεστή +, ο οποίος θα αφήσει τις

αρχικές λίστες ανέπαφες. Επίσης, με τον τελεστή * δημιουργείται μια λίστα ορισμένου

μεγέθους, η οποία αρχικοποιείται σε κάποια ορισμένη τιμή. Αυτή είναι μια συνηθισμένη

εργασία όταν εργαζόμαστε με μεγάλες λίστες των οποίων το μέγεθος είναι γνωστό εκ

των προτέρων.

Όταν ο τελεστής * χρησιμοποιείται με λίστες με αυτό τον τρόπο αντικαθιστά την

δεδομένη λίστα για τον δεδομένο αριθμό επαναλήψεων και συνενώνει όλα τα

Page 71: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 71/100

71

αντίγραφα για να κατασκευάσει μια νέα λίστα. Αυτή είναι μια τυπική μέθοδος της

Python για να ορίσει κάποιος μια λίστα δεδομένου μεγέθους. Μια λίστα που περιέχει μια

εμφάνιση του None συνήθως χρησιμοποιείται στη διαχείριση λίστας αλλά η ίδια η λίστα

μπορεί να είναι οτιδήποτε.

Με την χρήση των min max μπορείτε να βρείτε τη μικρότερη και μεγαλύτερη τιμή σε μια

λίστα. Χρησιμοποιείται συχνότερα σε αριθμητικές τιμές, αλλά λειτουργεί και σε λίστες με

οποιοδήποτε στοιχείο. Ωστόσο, αν τα στοιχεία είναι μεταξύ τους διαφορετικού τύπου θα

επιστρέψει σφάλμα.

Με τη μέθοδο index μπορείτε να αναζητήσετε σε ποια θέση βρίσκεται μια τιμή σε μια

λίστα. Αναζητά στη λίστα την τιμή που έχει το όρισμα και επιστρέφει την θέση του στη λίστα. Αν αναζητηθεί στοιχείο που δεν υπάρχει στη λίστα, παράγεται σφάλμα.

Η count αναζητά σε μια λίστα για ορισμένη τιμή αλλά επιστρέφει τον αριθμό των

εμφανίσεων αυτής της τιμής στη λίστα αντί για πληροφορίες θέσης.

Page 72: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 72/100

72

ΥΠΟΕΝΟΤΗΤΑ 4. ΠΛΕΙΑΔΕΣ

Στα πλαίσια της υποενότητας θα παρουσιαστούν οι πλειάδες και τα βασικά τους

στοιχεία.

4.1 Βασικά σημεία

Οι πλειάδες είναι ένας άλλος τύπος δομής δεδομένων της Python, που είναι πολύ

συγγενείς με τις λίστες. Πρόκειται για ακολουθίες τιμών που το βασικό τους

χαρακτηριστικό είναι ότι δεν μπορούν να μεταβληθούν, αλλά μπορούν μόνο να

δημιουργηθούν. Η δημιουργία μιας πλειάδας είναι παρόμοια με μια λίστα. Αναθέτουμε

μια ακολουθία τιμών σε μια μεταβλητή, μόνο που η λίστα είναι μια ακολουθία που

περικλείεται από τετράγωνες αγκύλες [ ], ενώ η πλειάδα είναι μια ακολουθία που

περικλείεται από παρενθέσεις ( ). Για παράδειγμα, μια πλειάδα πέντε στοιχείων είναι η

παρακάτω:

Όταν μια πλειάδα κατασκευαστεί, η χρήση της είναι πολύ όμοια με μια λίστα. Για

παράδειγμα:

Page 73: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 73/100

73

Η βασική διαφορά μεταξύ πλειάδας και λίστας είναι ότι η πλειάδα είναι αμετάτρεπτη και

η προσπάθεια να μεταβληθεί οδηγεί σε σφάλμα.

Ένα αντίγραφο μιας πλειάδας μπορεί να δημιουργηθεί με τους ίδιους τρόπους όπως οι

λίστες. Επίσης, με τη χρήση των τελεστών + και * μπορείτε επίσης να δημιουργήσετε

νέες πλειάδες από υπάρχουσες.

4.1.1 Ειδικά θέματα

Επειδή οι διπλές τετράγωνες αγκύλες [ ] που εσωκλείουν μια λίστα δεν υπάρχουν σε

άλλα σημεία της Python είναι προφανές ότι το [ ] σημαίνει μια κενή λίστα, ενώ το [1]

σημαίνει λίστα με ένα στοιχείο. Ωστόσο, το ίδιο δεν συμβαίνει με τις παρενθέσεις ( ) που

χρησιμοποιούνται για τις πλειάδες. Οι παρενθέσεις χρησιμοποιούνται επίσης και για την

ομαδοποίηση στοιχείων σε εκφράσεις για τον καθορισμό της σειράς εκτέλεσης

πράξεων. Αυτό είναι ένα μικρό πρόβλημα με τις πλειάδες ενός στοιχείου, καθώς όσες

περιέχουν περισσότερα στοιχεία περιλαμβάνουν και κόμμα μεταξύ των στοιχείων, οπότε

αυτό καθοδηγεί την Python στο να αναγνωρίσει ότι πρόκειται για πλειάδα. Για την

περίπτωση πλειάδας με ένα στοιχείο στη Python απαιτείται η χρήση του χαρακτήρα

κόμμα έπειτα από το μοναδικό στοιχείο. Για κενές πλειάδες δεν υπάρχει κάποια

απαίτηση, καθώς είναι εμφανές.

Η Python επιτρέπει στις πλειάδες να εμφανίζονται στα αριστερά ενός τελεστή ανάθεσης,

οπότε οι μεταβλητές στην πλειάδα λαμβάνουν τις αντίστοιχες τιμές από την πλειάδα στο

δεξί μέρος του τελεστή ανάθεσης.

Page 74: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 74/100

74

Οι τιμές στα δεξιά «πακετάρονται» σε μια πλειάδα και έπειτα «ξεπακετάρονται» στις

μεταβλητές στην αριστερή πλευρά.

Η Pyhton 3 επιτρέπει σε ένα στοιχείο που σημειώνεται με * να απορροφήσει

οποιοδήποτε αριθμό στοιχείων που δεν συνδυάζονται με άλλα στοιχεία. Το στοιχείο με

το * παίρνει όλο το περίσσευμα στοιχείων ως λίστα, και αν δεν υπάρχει περίσσευμα

παίρνει μια κενή λίστα.

Οι πλειάδες μπορούν να μετατραπούν σε λίστα εύκολα με τη συνάρτηση list. Παρόμοια

οι λίστες μπορούν να μετατραπούν σε πλειάδες με τη συνάρτηση tuple. Επίσης, η

συνάρτηση list είναι ένας εύχρηστος τρόπος να διαχωριστεί μια συμβολοσειρά σε

χαρακτήρες.

Page 75: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 75/100

75

Σύνοψη

Με την ολοκλήρωση της ενότητας αυτής γνωρίζετε:

• τις βασικές αρχές και τα βασικά στοιχεία προγραμματισμού στην Python,

τα βασικά στοιχεία των συμβολοσειρών στην Python και είσαστε σε θέση να γράφετε απλά σενάρια και προγράμματα,

• τα βασικά στοιχεία των λιστών στην Python και είσαστε σε θέση να γράφετε απλά

σενάρια και προγράμματα, και

• τα βασικά στοιχεία των πλειάδων στην Python και είσαστε σε θέση να γράφετε απλά

σενάρια και προγράμματα σε Python.

Page 76: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 76/100

76

Page 77: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 77/100

77

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

Προγράμματα Συμπληρωματικής Εκπαίδευσης

Με τη χρήση καινοτόμων μεθόδων εξ αποστάσεως εκπαίδευσης

1404 - ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PYTHON

ΔΙΔΑΚΤΙΚΗ ΕΝΟΤΗΤΑ 3. ΛΕΞΙΚΑ - ΈΛΕΓΧΟΣ ΡΟΗΣ

Page 78: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 78/100

78

Page 79: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 79/100

79

Εισαγωγικές Παρατηρήσεις

Σε αυτή την ενότητα οι εκπαιδευόμενοι έρχονται σε επαφή με τα λεξικά και τον έλεγχο

ροής της γλώσσας, τα οποία αποτελούν βασική γνώση για την δημιουργία

ολοκληρωμένων σεναρίων και προγραμμάτων. Είναι θεμελιώδη τόσο για την

συγγραφή όσο και για την κατανόηση ολοκληρωμένων προγραμμάτων.

Στην πρώτη υποενότητα παρουσιάζονται οι βασικές αρχές που ισχύουν για τα λεξικά

και παρέχονται παραδείγματα. Στη δεύτερη υποενότητα παρουσιάζονται αναλυτικά τα

βασικά στοιχεία και οι δομές ελέγχου ροής με παραδείγματα για κατανόηση και

εκτέλεση από τους εκπαιδευόμενους.

Page 80: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 80/100

80

ΥΠΟΕΝΟΤΗΤΑ 1. ΛΕΞΙΚΑ

Στα πλαίσια αυτής της υποενότητας θα παρουσιαστούν και αναλυθούν τα βασικά

στοιχεία των λεξικών της Python και θα παρουσιαστούν αρκετά παραδείγματα για εκτέλεση από τους εκπαιδευόμενους.

1.1 Τα βασικά στοιχεία

Τα λεξικά είναι ένας τύπος δεδομένων της Python, ο οποίος μπορεί να θεωρηθεί κατά

ένα τρόπο ως γενίκευση του τύπου δεδομένων λίστας. Τα λεξικά, όπως και οι λίστες,

είναι δομές δεδομένων που μπορούν να αποθηκεύσουν αντικείμενα κάθε τύπου. Πολύ

γενικά μπορούμε να πούμε ότι, ενώ σε μια λίστα μπορούμε να δεικτοδοτήσουμε ένα

στοιχείο της με έναν ακέραιο αριθμό, σε ένα λεξικό μπορούμε να το δεικτοδοτήσουμε με

οποιοδήποτε αντικείμενο. Η δομή του λεξικού δεδομένων δεν είναι, ενδεχομένως, πολύ

οικεία σε προγραμματιστές που δεν έχουν επαφή με την Python. Οπότε μια καλή

αφετηρία για την κατανόηση της χρήσης τους είναι η σύγκρισή τους με τις λίστες.

Σε μια λίστα οι τιμές αποθηκεύονται ταξινομημένες ανάλογα με τη θέση τους στη λίστα.

Οι τιμές στις λίστες είναι προσπελάσιμες με τη χρήση ακεραίων αριθμών που καλούνται

δείκτες ή ευρετήρια, οι οποίοι υποδηλώνουν σε ποια θέση βρίσκεται η τιμή σε μια λίστα.

Οι δείκτες που χρησιμοποιούνται για την πρόσβαση στις τιμές είναι συνεχόμενοι

ακέραιοι.

Τα λεξικά δεν έχουν ενσωματωμένη διάταξη. Σε ένα λεξικό οι τιμές που αποθηκεύονται

δεν ταξινομούνται με κάποιο αυτονόητο αυτόματο τρόπο, αλλά μπορείτε να ορίσετε

εσείς μια ειδική διάταξη των στοιχείων του με την χρήση μιας διαφορετικής δομής

δεδομένων (συχνά μια λίστα) ώστε να αποθηκεύσετε μια τέτοια διάταξη με ρητό και

σαφή τρόπο. Οι τιμές στα λεξικά είναι προσπελάσιμες με τη χρήση κλειδιών που

υποδεικνύουν σε ποιο σημείο του λεξικού βρίσκεται μια τιμή. Τα κλειδιά του λεξικού δεν

είναι αποκλειστικά αριθμοί αλλά επιτρέπεται να είναι ακέραιοι, συμβολοσειρές ή άλλα

αντικείμενα της Python.

Με άλλα λόγια, τόσο τα λεξικά όσο και οι λίστες παρέχουν προσπέλαση σε διάφορες

τιμές με τη χρήση ευρετηρίου, αλλά το σύνολο των τιμών που μπορεί να

χρησιμοποιηθεί ως δείκτης σε ένα λεξικό είναι πολύ ευρύτερο. Επιπλέον, ο μηχανισμός

που χρησιμοποιεί ένα λεξικό για την ευρετηρίαση είναι αρκετά διαφορετικός από αυτόν

μιας λίστας.

Page 81: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 81/100

81

Ένα κενό λεξικό δημιουργείται παρόμοια με μια κενή λίστα, με τη διαφορά ότι

χρησιμοποιούνται άγκιστρα αντί για τετράγωνες αγκύλες.

Για παράδειγμα αν θέλουμε να δημιουργήσουμε μια κενή λίστα θα δώσουμε την

παρακάτω εντολή, όπου η κενή λίστα ανατίθεται στη μεταβλητή list1.

Για να δημιουργήσουμε ένα κενό λεξικό θα δώσουμε την παρακάτω εντολή, όπου το

λεξικό ανατίθεται στη μεταβλητή dict1.

Όταν δημιουργηθεί ένα λεξικό, μπορούμε να αποθηκεύσουμε τιμές σε αυτό, όπως και

σε μια λίστα. Για παράδειγμα:

Εδώ βλέπουμε ότι η εκτύπωση των στοιχείων του λεξικού μας επιστρέφει ζεύγη τιμών της

μορφής κλειδί:τιμή, ενώ σε μια λίστα το κλειδί είναι, όπως είπαμε, αυτονόητα οι

συνεχόμενοι ακέραιοι αριθμοί. Στο παραπάνω τα κλειδιά είναι οι ακέραιοι 0,1,2 κλπ,

καθώς δεν ορίσαμε κάποιες ειδικές τιμές.Ωστόσο, υπάρχει διαφορά μεταξύ της λίστας και του λεξικού ως προς τον τρόπο

ανάθεσης τιμών. Η ίδια εργασία ανάθεσης τιμών σε μια λίστα θα επέστρεφε σφάλμα,

επειδή στην Python είναι παράτυπο να ανατεθεί μια τιμή σε θέση σε μια λίστα που δεν

υπάρχει ήδη, οπότε θα λάβουμε σφάλμα. Στα λεξικά αυτό δεν είναι πρόβλημα, καθώς

νέες θέσεις δημιουργούνται όταν πρέπει. Για παράδειγμα:

Page 82: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 82/100

82

Στη λίστα, αντίθετα, οι τιμές ορίζονται ως εξής.

Όταν ορίσουμε τιμές σε ένα λεξικό, μπορούμε να τις προσπελάσουμε με τρόπο

παρόμοιο με τις τιμές σε μια λίστα, δίνοντας τη θέση του στοιχείου στο λεξικό με βάση

την αύξουσα αρίθμηση των στοιχείων. Αυτό κάνει ένα λεξικό να μοιάζει γενικά με μια

λίστα. Για παράδειγμα:

Ωστόσο, στο λεξικό υπάρχει η επιπλέον δυνατότητα που δεν είναι εφικτή σε μια λίστα.

Μπορούμε να αποθηκεύσουμε τις τιμές σε κλειδιά που δεν είναι ακέραιοι αύξουσας

αρίθμησης. Αυτό μας δίνει πολύ περισσότερες δυνατότητες εργασίας από τις λίστες.

Αν δεν ορίσουμε κλειδιά, τότε αυτά είναι οι τιμές των ακεραίων δεικτών. Για παράδειγμα:

Page 83: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 83/100

83

Αυτό δεν είναι εφικτό με λίστα. Οι λίστες απαιτούν οι δείκτες να είναι ακέραιοι αριθμοί,

ενώ τα κλειδιά ενός λεξικού είναι λιγότερο περιορισμένα, καθώς μπορεί να είναι αριθμοί,

συμβολοσειρές ή ακόμη και ένα αντικείμενο της Python. Αυτό κάνει τα λεξικά κλασσική

επιλογή για εργασίες όπου οι λίστες δεν είναι επαρκείς.

1.2 Βασικές λειτουργίες

Εκτός από τις λειτουργίες της ανάθεσης τιμών, ορισμού κλειδιών και πρόσβασης

στοιχείων σε ένα λεξικό, όπως παρουσιάστηκαν προηγουμένως, τα λεξικά

υποστηρίζουν και επιπλέον λειτουργίες μέσα από μια σειρά ενσωματωμένων

συναρτήσεων του αντικειμένου τύπου λεξικού. Ορισμένες από τις σημαντικότερες είναι

οι παρακάτω, ενώ πλήρης αναφορά μπορεί να αναζητηθεί στην τεκμηρίωση της

γλώσσας.

Σε ένα λεξικό οι τιμές μπορούν να ανακτηθούν όπως προηγουμένως ή μπορεί να

χρησιμοποιηθεί η συνάρτηση value. Επίσης, τα κλειδιά μπορούν να ανακτηθούν με τη

χρήση της συνάρτησης keys. Εδώ θα παρατηρήσουμε ότι τα κλειδιά δεν εμφανίζονται

ταξινομημένα, ούτε με βάση τη σειρά που δημιουργήθηκαν. Για να γίνει αυτό θα πρέπει

να αποθηκεύσουμε τα κλειδιά σε μια λίστα και στη συνέχεια να ταξινομήσουμε τη λίστα.

Για παράδειγμα:

Page 84: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 84/100

84

Για να ανακτήσουμε όλα τα κλειδιά και τις συσχετισμένες τιμές του, χρησιμοποιούμε τη

μέθοδο items.

Η προσθήκη μιας εγγραφής σε ένα λεξικό γίνεται χωρίς κάποιο πρόβλημα.

Η διαγραφή μιας εγγραφής πραγματοποιείται με την εντολή del:

Ο αριθμός των εγγραφών σε ένα λεξικό μπορεί να ληφθεί με τη μέθοδο len.

Page 85: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 85/100

85

Όταν επιχειρήσουμε να προσπελάσουμε ένα κλειδί το οποίο δεν υπάρχει σε ένα λεξικό,

προκύπτει σφάλμα. Αν θέλουμε, μπορούμε να ελέγξουμε προκαταβολικά την ύπαρξή

του με τη χρήση της λέξης κλειδιού in, η οποία επιστρέφει True εάν το λεξικό περιέχει την

τιμή, ή False διαφορετικά. Η συνάρτηση get επιστρέφει την τιμή που είναι συσχετισμένη

με ένα κλειδί, εάν το λεξικό περιέχει το κλειδί. Για παράδειγμα:

Σε αρκετές περιπτώσεις χρειάζεται να δημιουργήσουμε ένα αντίγραφο του λεξικού. Αυτό

μπορεί να παραχθεί με τη μέθοδο copy.

Τέλος, αν θέλουμε να εκτελέσουμε ενημέρωση ενός λεξικού με βάση ένα άλλο λεξικό,

χρησιμοποιούμε τη μέθοδο update. Αυτή ενημερώνει ένα λεξικό με όλα τα ζεύγη

κλειδί/ τιμή από το δεύτερο λεξικό. Για τα κλειδιά τα οποία είναι κοινά και στα δύο λεξικά

οι τιμές από το δεύτερο λεξικό προέχουν έναντι αυτών του πρώτου.

Page 86: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 86/100

86

1.3 Κλειδιά

Στα προηγούμενα παραδείγματα χρησιμοποιήσαμε συμβολοσειρές και αριθμούς ως

κλειδιά ενός λεξικού. Όμως στην Python επιτρέπεται να χρησιμοποιήσουμε και

διαφορετικά αντικείμενα. Υπάρχει όμως ο βασικός περιορισμός ότι μπορούμε να

χρησιμοποιήσουμε ως κλειδί μόνο αντικείμενα τα οποία είναι αμετάτρεπτα και μπορούν

να τμηματοποιηθούν. Αμετάτρεπτο καλείται ένα αντικείμενο το οποίο δεν μπορεί να

μεταβληθεί. Η λίστα και το λεξικό, για παράδειγμα, είναι μετατρεπτά αντικείμενα, καθώς

τα στοιχεία τους μπορούν να προστεθούν να μεταβληθούν ή να διαγραφούν.

Οι κυριολεκτικές σταθερές, αριθμοί, συμβολοσειρές είναι αμετάτρεπτοι. Μπορούμε,

δηλαδή, να μεταβάλλουμε την τιμή που έχει ανατεθεί σε μια μεταβλητή, αλλά δεν

μεταβάλλουμε τον ίδιο τον αριθμό ή τη συμβολοσειρά ως αντικείμενο.

Αυτό είναι δεσμευτικό, καθώς οι λίστες δεν μπορούν να χρησιμοποιηθούν ως κλειδιά

λεξικών, αν και σε πολλές περιπτώσεις είναι ανάγκη να έχουμε κλειδιά τύπου λίστας.

Ο περιορισμός αυτός επιλύεται με την χρήση ενός άλλου τύπου δεδομένων, που είναι

αμετάτρεπτος και έχει τα χαρακτηριστικά μιας λίστας. Αυτός ο τύπος είναι η πλειάδα και

έχει το χαρακτηριστικό ότι δεν μπορεί μεταβληθεί εφόσον δημιουργηθεί. Για παράδειγμα:

Page 87: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 87/100

87

1.4 Εφαρμογές των λεξικών

Οι εφαρμογές των λεξικών είναι αρκετές και πολύ αποτελεσματικές, καθώς η υλοποίησή

τους στην Python είναι βελτιστοποιημένη για ταχύτητα και απόδοση. Η απόδοσή τους

δεν συγκρίνεται με τους πίνακες και τις λειτουργίες τους σε άλλες γλώσσες, καθώς

πολλές από τις εσωτερικές λειτουργίες της γλώσσας είναι βασισμένες στα λεξικά.

Επίσης, τα λεξικά είναι γενικά προτιμότερο να χρησιμοποιούνται έναντι των λιστών

καθώς υπερέχουν σε μεγάλο βαθμό από αυτές.

Πολύ συνηθισμένες είναι οι εφαρμογές των λεξικών σε προγράμματα επεξεργασίας

δεδομένων. Για παράδειγμα, ας υποθέσουμε ότι θέλουμε να υπολογίσουμε πόσες

φορές εμφανίζεται ένας αριθμός σε μια λίστα αριθμών σε ένα αρχείο ή μια βάση

δεδομένων ή αλλού. Αν χρησιμοποιήσουμε ένα λεξικό μπορούμε να το υλοποιήσουμε

με εύκολο τρόπο. Αρχικά δημιουργούμε μια συμβολοσειρά με τα δεδομένα, όπου οι

αριθμοί διαχωρίζονται με κάποιο χαρακτήρα. Στη συνέχεια δημιουργούμε μια λίστα

διαχωρίζοντας τις τιμές με τη μέθοδο split.

Page 88: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 88/100

88

Η λίστα που παράγουμε αποτελείται από τις τιμές των αριθμών και επίσης

παρατηρούμε ότι υπάρχουν και ορισμένοι χαρακτήρες που οφείλονται στο γεγονός ότι

έχουμε χαρακτήρες νέας γραμμής. Τα δεδομένα μας γενικά ενδέχεται να έχουν διάφορα

άχρηστα στοιχεία, τα οποία θα πρέπει να καθαρίσουμε με κατάλληλες εργασίες. Στην

περίπτωσή μας θα κάνουμε αντικατάσταση των χαρακτήρων \n με το κενό.

Page 89: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 89/100

89

Τώρα η λίστα μας είναι καθαρή. Οι τιμές των αριθμών μπορούν να οριστούν ως κλειδιά

σε ένα λεξικό και η τιμή του κάθε κλειδιού θα καταγράφει την εμφάνιση κάθε αριθμού.Αυτό θα γίνει με ένα βρόχο επανάληψης όπου σε κάθε επανάληψη θα αυξάνεται κατά 1

η τιμή για κάθε κλειδί που υπάρχει στο λεξικό, αν αυτό υπάρχει στη λίστα.

Page 90: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 90/100

90

Το αποτέλεσμα είναι αρκετά ικανοποιητικό, καθώς με πολύ σύντομη προσέγγιση

μπορούμε να αξιοποιήσουμε την ισχύ των λεξικών για ένα πρόβλημα ανάλυσης

δεδομένων, το οποίο μπορεί να έχει αρκετές χιλιάδες ή εκατομμύρια εγγραφές.

ΥΠΟΕΝΟΤΗΤΑ 2. ΕΛΕΓΧΟΣ ΡΟΗΣ

Στα πλαίσια της υποενότητας αυτής θα παρουσιαστούν οι βασικές δομές ελέγχου ροής

στην Python. Ειδικότερα θα παρουσιαστούν:

ο βρόχος while,

η δομή If-elif-else,

ο βρόχος for, και

βασικά παραδείγματα για εξοικείωση.

2.1 Ο βρόχος while

Ο βρόχος while γενικά αποτελείται από ένα σύνολο εντολών, οι οποίες εκτελούνται σε

επανάληψη για όσο διάστημα ικανοποιείται μια δεδομένη συνθήκη. Η συνθήκη

υπολογίζεται κατά την εκκίνηση του βρόχου και σε κάθε επανάληψη. Η συνθήκη

Page 91: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 91/100

91

υπολογίζεται σε μια τιμή που είναι είτε True ή False. Αν η τιμή είναι True, εκτελείται το

σώμα εντολών εντός του βρόχου. Αν η τιμή είναι False, ο βρόχος δεν επαναλαμβάνεται

και το πρόγραμμα συνεχίζει την εκτέλεσή του.

Στην Python ένας βρόχος while της Python έχει την παρακάτω γενική δομή. Όπως έχει

αναφερθεί, δεν απαιτούνται άλλου τύπου διαχωριστικά για τον καθορισμό του βρόχου,

όπως άγκιστρα ή αγκύλες. Ο διερμηνευτής της Python αναγνωρίζει το σώμα της while

από το επίπεδο εσοχής. Αν υπάρχει κάποιο λάθος στις εσοχές θα λάβουμε σφάλμα, ή

λάθος κατά την εκτέλεση.

Για παράδειγμα, ο παρακάτω βρόχος while ανατρέχει το περιεχόμενο μιας λίστας μέχρι

να συναντήσει την τιμή 32. Η συνθήκη συνεπώς ορίζεται ως !=32 και είναι True μέχρι να

συναντήσουμε την τιμή 32 οπότε γίνεται False και η εκτέλεση του βρόχου διακόπτεται.

Στο σημείο αυτό εκτελείται η επόμενη γραμμή του προγράμματός μας εκτός του

βρόχου.

Στην Python μπορεί να εκτελεστεί το τμήμα else προαιρετικά, αν και δεν χρησιμοποιείται

συχνά.

Για παράδειγμα, μπορούμε να έχουμε το ίδιο αποτέλεσμα με προηγουμένως.

Page 92: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 92/100

92

Αν για κάποιο λόγο θέλουμε να διακόψουμε την εκτέλεση του βρόχου σε κάποιο

σημείο, μπορούμε να χρησιμοποιήσουμε την εντολή Break. Σε αυτή την περίπτωση διακόπτεται άμεσα ο βρόχος while και δεν εκτελείται ούτε το τμήμα post-code (αν

υπάρχει). Για παράδειγμα:

Αν θέλουμε για κάποιο λόγο να παραλείψουμε την εκτέλεση του υπόλοιπου σώματος

του βρόχου και να ξεκινήσουμε την επανάληψη από την αρχή, χρησιμοποιούμε την

εντολή continue. Αυτή επανεκκινά την εκτέλεση του βρόχου υπολογίζοντας την

condition πάλι, και εάν είναι True ο βρόχος, εκτελείται κανονικά. Για παράδειγμα, αν δεν

χρησιμοποιήσουμε την continue, το παρακάτω θα μας εκτυπώνει σε κάθε επανάληψη

ένα μήνυμα.

Page 93: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 93/100

93

Αν όμως θέσουμε την continue, τότε το τμήμα της εσωτερικής εκτύπωσης θα

παραλείπεται συνεχώς.

2.2 Η πρόταση if-elif-else

Όταν θέλουμε να ελέγξουμε την ροή εκτέλεσης ενός προγράμματος με βάση την τιμή

μιας συνθήκης, τότε γενικά χρησιμοποιούμε την δομή ελέγχου if-then-else. Στην Python

η δομή αυτή έχει την εξής γενική μορφή (if-elif-else).

Page 94: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 94/100

94

Εάν η συνθήκη 1 (condition1) είναι True, τότε εκτελείται το τμήμα body1. Εάν η συνθήκη

2 (condition2) είναι True, τότε εκτελείται το body2. Διαφορετικά συνεχίζει το ίδιο σενάριο

ελέγχων έως ότου βρεθεί μια συνθήκη που να είναι True. Αν δεν βρεθεί κάποια, τότε

εκτελείται το τμήμα else και το τμήμα body(n).

Το body έπειτα από την εντολή if απαιτείται, ενώ τα τμήματα elif ή το else ή και τα δύο

μπορεί να παραληφθούν. Εάν μια συνθήκη δεν μπορεί να βρει το αντίστοιχο σώμα για

να εκτελέσει (καμία συνθήκη δεν υπολογίζεται σε True ή False), τότε δεν εκτελεί τίποτα.

Για παράδειγμα, εμπλουτίσαμε τον προηγούμενο βρόχο με ορισμένες εντολές ελέγχου,

οι οποίες είτε διακόπτουν την εκτέλεση του βρόχου ή όχι.

Page 95: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 95/100

95

Γενικότερα, όπως ο βρόχος while, έτσι και τα τμήματα body της δομής if-elif-else

αποτελούν εντολές της Python, οι οποίες είναι χωρισμένες με νέα γραμμή και

βρίσκονται στο ίδιο επίπεδο εσοχής. Αν δεν προσέξουμε την δομή, θα λάβουμε σφάλμα

σύνταξης ή σφάλμα κατά την εκτέλεση.

2.3 Ο βρόχος for

Εκτός του βρόχου while, υπάρχει και ο βρόχος επανάληψης for. Ο βρόχος τύπου for

γενικά βασίζεται στον έλεγχο και αύξηση της τιμής μιας μεταβλητής σε κάθε επανάληψη

του βρόχου. Αν η τιμή της μεταβλητής λάβει την τιμή ελέγχου, ο βρόχος δεν

επαναλαμβάνεται. Η γενική του μορφή στην Python είναι η εξής:

Εδώ παρατηρούμε ότι υπάρχει μια διαφορά της Python από άλλες γλώσσες. Η

μεταβλητή ελέγχου είναι η variable και ελέγχεται με βάση μια ακολουθία τιμών που είναι

η values. Η αρχική τιμή της variable θα είναι η αρχική τιμή της ακολουθίας και το σώμα

(body) θα εκτελεστεί επαναλαμβανόμενα μια φορά για κάθε στοιχείο της ακολουθίας.

Για παράδειγμα, αν στο προηγούμενο παράδειγμα ορίσουμε ένα βρόχο for με

μεταβλητή ελέγχου που ελέγχεται από την ακολουθία τιμών της λίστας list0, τότε ο

βρόχος θα εκτελεστεί για 5 επαναλήψεις χωρίς να εκτυπωθεί κάποιο αποτέλεσμα.

Page 96: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 96/100

96

Το τμήμα else είναι προαιρετικό. Όπως και με το βρόχο while, έτσι και στο βρόχο for το τμήμα else χρησιμοποιείται σπάνια. Οι break και continue έχουν το ίδιο αποτέλεσμα

εδώ όπως και στο βρόχο while. Έτσι, αν εκτελεστεί η break, διακόπτεται η εκτέλεση του

βρόχου και δεν εκτελείται το τμήμα post-code εάν υπάρχει εντολή else. Εάν εκτελεστεί η

continue, προκαλεί την διακοπή εκτέλεσης του υπόλοιπου της επανάληψης του βρόχου

και ο βρόχος ξεκινά από την αρχή με το επόμενο στοιχείο της ακολουθίας.

Πρέπει να σημειωθεί εδώ ότι ο βρόχος for είναι λίγο διαφορετικός στην Python από ό,τι

σε άλλες γλώσσες, καθώς στην Python ο βρόχος for επαναλαμβάνεται για τις τιμές

που επιστρέφονται από ένα αντικείμενο που είναι επαναλήψιμο, δηλαδή ένα αντικείμενο

το οποίο μπορεί να έχει μια ακολουθία τιμών. Για παράδειγμα, ένας βρόχος for μπορεί

να επαναλαμβάνεται επάνω σε κάθε στοιχείο μιας λίστας, μιας πλειάδας ή μιας

συμβολοσειράς.

Μια ειδική συνάρτηση που είναι αρκετά χρήσιμη είναι η range. Η range δέχεται ως

όρισμα έναν αριθμό n και επιστρέφει μια ακολουθία 0,1,2,3,4,…,n-2,n-1. Οπότε,

δίνοντάς της ως όρισμα σε ένα βρόχο for έχουμε το ίδιο αποτέλεσμα με ένα κλασσικό

βρόχο for. Αυτό είναι χρήσιμο όταν χρησιμοποιούνται βρόχοι σε πολύ μεγάλες λίστες.

Page 97: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 97/100

97

Αντί για τη δημιουργία μιας λίστας με 1 εκατομμύριο στοιχεία, για παράδειγμα, κάτι που

θα απαιτεί αρκετή μνήμη, μπορεί να χρησιμοποιηθεί η range (1000000), η οποία απαιτεί

σχετικά μικρή ποσότητα μνήμης και δημιουργεί μια ακολουθία ακεραίων από το 0 ως

το 1000000, όταν απαιτηθεί από το βρόχο. Για παράδειγμα, στο προηγούμενο έχουμε:

2.4 Ειδικά σημεία

Στους βρόχους και τις δομές if-elif-else χρησιμοποιούνται έλεγχοι σε τιμές που

καθορίζουν την εκτέλεση ενός βρόχου ή όχι. Οι έλεγχοι πραγματοποιούνται με τη χρήση

τελεστών και λέξεων κλειδιών της Python.Η σύγκριση αντικειμένων μπορεί να γίνει με τη βοήθεια τελεστών όπως οι <, > , =. Ο ==

είναι ο τελεστής ελέγχου ισότητας και ή ο != ή ο <> μπορούν να χρησιμοποιηθούν ως

τελεστές μη ισότητας. Υπάρχει επίσης ο in και ο not in που ελέγχουν τη συμμετοχή σε

ακολουθίες και οι is και is not για τον έλεγχο κατά πόσο δύο αντικείμενα είναι ίδια.

Εκφράσεις που επιστρέφουν μια δυαδική τιμή μπορούν να συνδυαστούν σε

πολύπλοκες εκφράσεις χρησιμοποιώντας τους τελεστές and, or και not. Σε πολύπλοκες

εκφράσεις, καλό είναι να χρησιμοποιούνται παρενθέσεις για την αποφυγή σφαλμάτων.

Page 98: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 98/100

98

Οι βρόχοι χρησιμοποιούνται πολύ συχνά για την εκτέλεση εργασιών σε λίστες, λεξικά

και πλειάδες.

Σύνοψη

Με την ολοκλήρωση της ενότητας αυτής γνωρίζετε:

• τα βασικά στοιχεία των λεξικών στην Python και είσαστε σε θέση να γράφετε απλά

σενάρια και προγράμματα,

• τα βασικά στοιχεία του ελέγχου ροής στην Python, και

• τα βασικά στοιχεία των δομών ελέγχου ροής στην Python και είσαστε σε θέση να

γράφετε απλά σενάρια και προγράμματα σε Python.

Page 99: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 99/100

99

ΒΙΒΛΙΟΓΡΑΦΙΑ

ΔΕ1

Hetland, Μ., (2005), Beginning Python: From Novice to Professional, Apress, UnitedStates of America.

• Lutz, Μ., (2013), Learning Python, Fifth Edition, O’Reilly Media, Inc., Sebastopol,

United States of America.

• Lutz, Μ., (2011), Programming Python, Fourth Edition, O’Reilly Media, Sebastopol,

United States of America.

• Shaw, Z., (2014), Learn Python the hard way : a very simple introduction to the

terrifyingly beautiful world of computers and code, Third edition, .Addison Wesley,

United States of America.

• Αβούρης, Ν.,Κουκιάς, Μ., Παλιούρας, Β., Σγάρμπας Κ., (2013), Εισαγωγή στους

υπολογιστές με τη γλώσσα Python, Εκδόσεις Πανεπιστημίου Πατρών.

ΔΕ2

• Hetland, Μ., (2005), Beginning Python: From Novice to Professional, Apress, United

States of America.

Lutz, Μ., (2013), Learning Python, Fifth Edition, O’Reilly Media, Inc., Sebastopol,

United States of America.

• Lutz, Μ., (2011), Programming Python, Fourth Edition, O’Reilly Media, Sebastopol,

United States of America.

• Shaw, Z., (2014), Learn Python the hard way : a very simple introduction to the

terrifyingly beautiful world of computers and code, Third edition, .Addison Wesley,

United States of America.

Αβούρης, Ν.,Κουκιάς, Μ., Παλιούρας, Β., Σγάρμπας Κ., (2013), Εισαγωγή στους

υπολογιστές με τη γλώσσα Python, Εκδόσεις Πανεπιστημίου Πατρών.

ΔΕ3

• Hetland, Μ., (2005), Beginning Python: From Novice to Professional, Apress, United

States of America.

• Lutz, Μ., (2013), Learning Python, Fifth Edition, O’Reilly Media, Inc., Sebastopol,

United States of America.

Page 100: 1404_book_u1u2u3

7/21/2019 1404_book_u1u2u3

http://slidepdf.com/reader/full/1404booku1u2u3 100/100

• Lutz, Μ., (2011), Programming Python, Fourth Edition, O’Reilly Media, Sebastopol,

United States of America.

• Shaw, Z., (2014), Learn Python the hard way: a very simple introduction to the

terrifyingly beautiful world of computers and code, Third edition, .Addison Wesley,

United States of America.

• Αβούρης, Ν., Κουκιάς, Μ., Παλιούρας, Β., Σγάρμπας Κ., (2013), Εισαγωγή στους

υπολογιστές με τη γλώσσα Python, Εκδόσεις Πανεπιστημίου Πατρών.