Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική μετάφραση): e-book στην τοποθεσία http://dide.flo.sch.gr/plinet/meetings/meeting23/a_byte_of_python-el.pdf
1. Εισαγωγή Η Python είναι μια εύκολη στην εκμάθηση, ισχυρή γλώσσα προγραμματισμού. Έχει αποδοτικές δομές δεδομένων υψηλού επιπέδου και μια απλή αλλά αποτελεσματική προσέγγιση στον αντικειμενοστρεφή προγραμματισμό. Η κομψή σύνταξη της Python και οι δυναμικοί τύποι της, μαζί με τη λειτουργία της ως διερμηνευόμενης (αντί μεταγλωττιζόμενης) γλώσσας, την καθιστούν την ιδανική γλώσσα για δημιουργία σεναρίων εντολών και για ταχεία ανάπτυξη εφαρμογών σε πολλούς τομείς και στις περισσότερες πλατφόρμες. Γιατί Python? Ας ρίξουμε μια ματιά σε ποιες εφαρμογές χρησιμοποιείται: Γιατί Python? Οι προγραμματιστές σε Python είναι οι 2 οι προγραμματιστές. καλύτερα αμειβόμενοι Γιατί Python? Γιατί είναι: Απλή Η Python είναι μια απλή και μινιμαλιστική γλώσσα. Ένα καθαρό προγράμμα σε Python είναι σαν να διαβάζεται μια σημείωση σε Αγγλικά. Με αυτό τον τρόπο επικεντρωνόμαστε στη λύση του προβλήματος αντί στην ίδια τη γλώσσα.
Εύκολη στην εκμάθηση Όπως θα δείτε, είναι εξαιρετικά απλό να ξεκινήσετε με την Python γιατί έχει μια ασυνήθιστα απλή σύνταξη. Ελεύθερη και Ανοικτού Κώδικα Η Python είναι ένα παράδειγμα ΕΛΛΑΚ (Ελεύθερο Λογισμικό και Λογισμικό Ανοικτού Κώδικα). Έτσι μπορείτε να διανείμετε αντίγραφα αυτού του λογισμικού, να διαβάσετε τον πηγαίο κώδικά του, να κάνετε αλλαγές σ' αυτό και να χρησιμοποιήσετε κομμάτια του σε νέα ελεύθερα προγράμματα. Γλώσσα υψηλού επιπέδου Όταν γράφετε προγράμματα στην Python, δε χρειάζεται ποτέ να νοιάζεστε για τις χαμηλού επιπέδου λεπτομέρειες όπως η διαχείριση της μνήμης κ.λπ. Φορητή H Python έχει υλοποιηθεί σε πολλές πλατφόρμες. Έτσι τα προγράμματα σε Python μπορούν να δουλέψουν σε οποιαδήποτε πλατφόρμα χωρίς αλλαγές. Μπορείτε να χρησιμοποιήσετε την Python στο Linux, στα Windows, στο FreeBSD, σε Macintosh, στο Solaris, στο OS/2, στην Amiga, στο AROS, στο AS/400, στο BeOS, στο OS/390, στο z/os, στο Palm OS, στο QNX, στο VMS, στο Psion, στο Acorn RISC OS, στο VxWorks, σε PlayStation, στο Sharp Zaurus, στα Windows CE ακόμα και σε PocketPC! Διερμηνευόμενη Ένα πρόγραμμα που γράφεται σε μια μεταγλωττιζόμενη γλώσσα όπως η C ή η C++ μετατρέπεται από την πηγαία γλώσσα (τη C ή τη C++ σε αυτή την περίπτωση) σε μια γλώσσα που μιλάει ο υπολογιστής σας (δυαδικός κώδικας δηλαδή 0 και 1). Αυτό γίνεται χρησιμοποιώντας έναν ενδιάμεσο μεταγλωττιστή με διάφορες σημαίες και επιλογές. Όταν τρέχετε το πρόγραμμα, ο συνδέτης αντιγράφει το πρόγραμμα στη μνήμη και αρχίζει να το τρέχει. Η Python, δε χρειάζεται μεταγλώττιση σε δυαδικό αρχείο. Η Python μετατρέπει τον πηγαίο κώδικα σε μια ενδιάμεση μορφή που ονομάζεται bytecode το οποίο μεταφράζει στη γλώσσα του υπολογιστή και μετά το τρέχει. Αντικειμενοστρεφής Η Python υποστηρίζει τόσο το διαδικασιοστρεφή προγραμματισμό (procedure-oriented) όσο και τον αντικειμενοστρεφή προγραμματισμό (object-oriented). Στο διαδικασιοστρεφή προγραμματισμό, το πρόγραμμα δημιουργείται και χρησιμοποιεί διαδικασίες ή συναρτήσεις οι οποίες δεν είναι τίποτε άλλο από μικρότερα και επαναχρησιμοποιήσιμα κομμάτια από προγράμματα. Στις αντικειμενοστρεφείς γλώσσες, το προγράμματα δημιουργούνται πάνω σε αντικείμενα και κλάσεις τα οποία συνδυάζουν δεδομένα και λειτουργικότητα. Η Python σε αυτή την περίπτωση είναι πιο εύκολη από μεγάλες γλώσσες όπως η C++ ή η Java. Επεκτάσιμη Κομμάτια πχ σε C ή C++ μπορούν να χρησιμοποιηθούν από το Python.
Ενσωματώσιμη Μπορείτε να ενσωματώσετε την Python μέσα στα προγράμματα σε C/C++ για να τους δώσετε δυνατότητες 'scripting' για τους χρήστες σας. Εκτεταμένες βιβλιοθήκες Η βιβλιοθήκη της Python είναι τεράστια. Μπορεί να σας βοηθήσει να κάνετε διάφορα πράγματα σχετικά με κανονικές εκφράσεις, δημιουργία τεκμηρίωσης, δοκιμές μονάδων, νημάτωση, βάσεις δεδομένων, περιηγητές ιστού, CGI, FTP, email, XML, XML-RPC, HTML, αρχεία WAV, κρυπτογράφηση, γραφικές διεπαφές χρήστη (GUI -graphical user interfaces), Tk, και άλλα πράγματα που εξαρτούνται από το σύστημα. Θυμηθείτε ότι όλα αυτά είναι διαθέσιμα όποτε είναι εγκατεστημένη η Python. 2. Εγκατάσταση της Python και βοηθητικών περιβαλλόντων (για χρήστες Windows). Python Η εγκατάσταση της Python είναι πολύ εύκολη. Επισκεφτείτε την επίσημη σελίδα της Python στη διεύθυνση https://www.python.org/downloads/ όπου θα βρείτε την πιο πρόσφατη έκδοση της (στην παρούσα φάση την έκδοση 3.6.0) Προσοχή στην έκδοση που θα επιλέξετε όπως επίσης και στην επιλογή του λειτουργικού συστήματος εγκατάστασης (Windows, Linux, Mac, κτλ). Επιλέξτε το κουμπί Download Python 3.6.0. Με την συγκεκριμένη κίνηση αποθηκεύεται το αρχείο Python 3.6.0.exe (εκτελέσιμο αρχείο εγκατάστασης). Ακολουθήστε στη συνέχεια τα βήματα εγκατάστασης:
Προσοχή: Εάν κατά τη διάρκεια της εγκατάστασης εμφανιστεί παράθυρο επιλογής κλικάρετε και επιλέγεται την εγκατάσταση του IDLE. Για να ανοίξετε την κονσόλα διερμηνευτή της Python ακολουθήστε τα βήματα ΈναρξηΌλα τα προγράμματα IDLE (Python 3.6)
Notepad++ Για την συγγραφή προγραμμάτων σε Python θα χρειαστούμε ένα περιβάλλον Notepad++. To Notepad++ είναι ένα πρόγραμμα επεξεργασίας κειμένου και πηγαίου κώδικα για χρήση με το Microsoft Windows. Υποστηρίζει καρτέλες επεξεργασίας, καθώς και την σύγχρονη εργασία σε πολλαπλά ανοιχτά αρχεία σε ένα μόνο παράθυρο. Για την εγκατάσταση του επισκεφτείτε το ιστότοπο https://notepad-plusplus.org/download/v7.3.2.html και επιλέξτε το κουμπί Download. Γίνεται αυτόματα αποθήκευση του αρχείου npp.7.3.2.installer το οποίο ανοίγεται. Επιλέγεται Yes στο παράθυρο που σας εμφανίζεται. Στη συνέχεια επιλέγεται την γλώσσα εγκατάστασης.
Για να ανοίξετε το Notepad++ ακολουθήστε τα βήματα Έναρξη Όλα τα προγράμματα Notepad++
Προτεινόμενα συγγράμματα Κωδικός Εύδοξου: 41955494
Μπορείτε επίσης να συμβουλευτείτε τα συγγράμματα Κωδικός Εύδοξου: 33154040 3. Χρήση της κονσόλας διερμηνευτή της Python Η κονσόλα διερμηνευτή της Python μπορεί να χρησιμοποιηθεί απευθείας για την συγγραφή και εκτέλεση μικρών προγραμμάτων αλλά και στην εκτέλεση απλών υπολογισμών σαν υπολογιστής χειρός.
Αριθμοί Άσκηση 3.1 (Χρήση σαν υπολογιστής χειρός) Ανοίξτε το διερμηνέα (IDLE) και πληκτρολογήστε μια μια τις παρακάτω εντολές χρησιμοποιώντας το κουμπί Enter για να περάσετε από την μία στην άλλη: 2 + 2 50-5*6 (50-5*6) / 4 8 / 5 Τι παρατηρείται; Άσκηση 3.2 Ανοίξτε το διερμηνέα (IDLE) και πληκτρολογήστε μια μια τις παρακάτω εντολές χρησιμοποιώντας το κουμπί Enter για να περάσετε από την μία στην άλλη: 17 / 3 17 // 3 17 % 3 5 * 3 + 2 5 ** 2 2 ** 7 Τι παρατηρείται; Απάντηση 3.2 Οι ακέραιοι αριθμοί (π.χ. 2, 4, 20) έχουν τύπο int, εκείνοι με ένα κλασματικό μέρος (π.χ. 5.0, 1.6) έχουν τον τύπο float. Ο τελεστής της διαίρεσης (/) επιστρέφει πάντα έναν float αριθμό. Για να μπορέσουμε να πάρουμε ένα ακέραιο αποτέλεσμα από μία διαίρεση μπορούμε να χρησιμοποιήσετε το (//). Για να υπολογίσουμε το υπόλοιπο μπορούμε να χρησιμοποιήσετε το (%). Τέλος χρησιμοποιούμε τον τελεστή (**) για να υπολογίσουμε δυνάμεις. Άσκηση 3.3 Χρησιμοποιώντας το διερμηνέα (IDLE) πληκτρολογήστε μια μια τις παρακάτω εντολές: width = 20 height = 5 * 9 width * height
τι είναι τα width και height; Τι αποτέλεσμα παίρνεται; Απάντηση 3.3 Το σύμβολο της ισότητας (=) χρησιμοποιείται για να εκχωρήσουμε μια τιμή σε μια μεταβλητή. Με αυτό τον τρόπο μπορούμε να κάνουμε πολλαπλασιασμό μεταξύ μεταβλητών αντί αριθμών. Προσοχή: Αν μια μεταβλητή δεν είναι "ορίζεται" (δεν της έχει αποδοθεί κάποια τιμή), τότε προσπαθώντας να τη χρησιμοποιήσουμε θα μας εμφανίσει ένα σφάλμα του τύπου: n Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'n' is not defined Αλφαριθμητικά (String) Άσκηση 3.4 Χρησιμοποιώντας το διερμηνέα (IDLE) πληκτρολογήστε μια μια τις παρακάτω εντολές: spam 'spam' 'spam eggs' 'doesn\'t' "doesn't" '"Yes," he said.' "\"Yes,\" he said." '"Isn\'t," she said.' 'First line.\n Second line.' print( Χαίρε, Κόσμε! ) print('"isn\'t," she said.') s = 'First line.\nsecond line.' s print(s) Που οφείλονται οι διαφορετικές (ή οι ίδιες) απαντήσεις σε διαφορετικά string; Τι παρατηρείται για την χρήση των μονών και διπλών εισαγωγικών και τι για την χρήση του backslashe (\); Απάντηση 3.4 Τα αλφαριθμητικά μπορούν να περικλείονται σε μονά εισαγωγικά ('...') ή διπλά εισαγωγικά ("..."), με το ίδιο αποτέλεσμα. Το string της εξόδου περικλείεται σε εισαγωγικά και οι ειδικοί χαρακτήρες (π.χ. ο χαρακτήρας n που σημαίνει new line- νέα γραμμή) διέφυγαν με backslashes. Η συνάρτηση print () παράγει μια πιο ευανάγνωστη έξοδο, παραλείποντας τα εισαγωγικά και εκτυπώνοντας ειδικούς χαρακτήρες.
Άσκηση 3.5 Χρησιμοποιώντας το διερμηνέα (IDLE) πληκτρολογήστε μια μια τις παρακάτω εντολές: 3 * 'un' + 'ium' 'Py' 'thon' Τι παρατηρείται για την χρήση του αριθμού, του * και του +;