Byte of Python - Ελληνική Έκδοση

Τα πρώτα βήματα

Εισαγωγή

Τώρα θα δούμε πώς μπορούμε να τρέξουμε το παραδοσιακό πρόγραμμα «Χαίρε, Κόσμε!» (Hello, World!) στην Python. Αυτό θα σας διδάξει πώς να γράφετε, να αποθηκεύετε και να τρέχετε προγράμματα Python.

Υπάρχουν δύο τρόποι για να χρησιμοποιήσετε την Python ώστε να τρέξετε το πρόγραμμά σας: χρησιμοποιώντας την κονσόλα του διαδραστικού διερμηνευτή (interactive interpreter prompt) ή χρησιμοποιώντας ένα αρχείο πηγαίου κώδικα (source code file). Τώρα θα δούμε πώς χρησιμοποιούνται οι δύο αυτές μέθοδοι.

Χρήση της κονσόλας διερμηνευτή

Εκκινήστε το διερμηνευτή (interpreter) από τη γραμμή εντολών πληκτρολογώντας την εντολή python3.

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

Εάν χρησιμοποιείτε το IDLE, επιλέξτε Start → Programs → Python 3.1 → IDLE (Python GUI).

Τώρα εισάγετε print('Χαίρε, Κόσμε!') και πιέστε το πλήκτρο Enter. Θα πρέπει να δείτε τις λέξεις Hello World ως αποτέλεσμα.

Python 3.0.1+ (r301:69556, Apr 15 2009, 15:59:22) 
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Χαίρε, Κόσμε!')
Χαίρε, Κόσμε!
>>>

Παρατηρήστε ότι η Python σας δίνει την έξοδο (output) της γραμμής άμεσα! Αυτό που μόλις γράψατε είναι μία εντολή (statement) σε Python. Χρησιμοποιούμε την print (τύπωσε) για να τυπώσουμε οποιαδήποτε τιμή της παρέχουμε. Εδώ, της δίνουμε το κείμενο Χαίρε, Κόσμε! και αυτό τυπώνεται στην οθόνη.

Κλείσιμο της κονσόλας του διερμηνευτή

Για να κλείσετε την κονσόλα, πιέστε ctrl-d (σύμβολο EOF - End Of File) αν χρησιμοποιείτε το IDLE ή κάποιο κέλυφος Linux/BSD. Αν χρησιμοποιείτε τη γραμμή εντολών των Windows, πιέστε ctrl-z και μετά πιέστε Enter.

Επιλογή ενός επεξεργαστή κώδικα (Editor)

Προτού προχωρήσουμε στη συγγραφή προγραμμάτων Python σε αρχεία πηγαίου κώδικα, χρειαζόμαστε έναν επεξεργαστή κώδικα για να γράψουμε τον κώδικά μας. Η επιλογή ενός επεξεργαστή είναι εξαιρετικά σημαντική. Πρέπει να επιλέξετε τον επεξεργαστή που θα χρησιμοποιήσετε όπως θα επιλέγατε ένα αυτοκίνητο που θα αγοράζατε. Ένας καλός επεξεργαστής θα σας βοηθήσει να γράψετε προγράμματα Python εύκολα, κάνοντας το ταξίδι σας πιο άνετο και σας βοηθά να φθάσετε στον προορισμό σας (την επίτευξη του στόχου σας) με έναν πολύ πιο εύκολο και ασφαλή τρόπο.

Μία από τις πολύ βασικές απαιτήσεις είναι η χρωματική επισήμανση σύνταξης όπου όλα τα διαφορετικά τμήματα του Python προγράμματoς χρωματίζονται κατάλληλα έτσι ώστε να μπορείτε να δείτε το πρόγραμμα και να έχετε μία εικόνα της εκτέλεσής του. Επίσης, η επισήμανση μας βοηθά να εντοπίζουμε τυχόν συντακτικά λάθη που έχουμε κάνει στον κώδικα επειδή δεν θα χρωματίζεται σωστά όπως θα αναμενόταν μια λέξη ή μια εντολή.

Εάν χρησιμοποιείτε Windows, τότε προτείνω να χρησιμοποιήσετε το IDLE. Το IDLE κάνει συντακτική επισήμανση του κώδικα και πολλά περισσότερα όπως το ότι σας επιτρέπει να τρέχετε τα προγράμματά σας μέσα από το IDLE ανάμεσα σε άλλα πράγματα. Σημαντική σημείωση: Μη χρησιμοποιήσετε το Notepad - είναι μία κακή επιλογή επειδή δεν κάνει συντακτική επισήμανση και επίσης δεν υποστηρίζει τη στοίχιση του κειμένου, που είναι ένα πολύ σημαντικό χαρακτηριστικό στην περίπτωσή μας όπως θα δούμε αργότερα. Καλοί επεξεργαστές όπως το IDLE (και ο VIM επίσης) θα σας βοηθήσουν αυτόματα σε αυτό.

Εάν χρησιμοποιείτε Linux/FreeBSD, τότε έχετε πλήθος επιλογών για τον επεξεργαστή που θα χρησιμοποιήσετε. Εάν ξεκινάτε μόλις τώρα τον προγραμματισμό, πιθανόν θα θέλετε να χρησιμοποιήσετε το Geany. Έχει μία φιλική γραφική διεπαφή και κουμπιά για την εύκολη μεταγλώττιση και εκτέλεση των Python προγραμμάτων σας.

Ωστόσο, εάν θέλετε, μπορείτε να αρκεστείτε στους επεξεργαστές κειμένου Gedit και Kate, οι οποίοι υπάρχουν εγκατεστημένοι από προεπιλογή στις περισσότερες διανομές Linux που χρησιμοποιούν το GNOME ή το KDE, αντίστοιχα. Σημειώστε ότι οι επεξεργαστές αυτοί χρωματίζουν τον κώδικα για να τον κάνουν πιο ευανάγνωστο, αλλά δεν παρέχουν εργαλεία εκτέλεσής του. Θα πρέπει να εκτελείτε τα προγράμματά σας έξω από τον επεξεργαστή κειμένου.

Εάν είστε έμπειρος προγραμματιστής, τότε ήδη θα χρησιμοποιείτε το Vim ή τον Emacs. Δε χρειάζεται να πούμε ότι πρόκειται για δύο από τους πιο ισχυρούς επεξεργαστές κώδικα και θα οφεληθείτε από τη χρήση τους για τη συγγραφή των Python προγραμμάτων σας. Προσωπικά χρησιμοποιώ το Vim για τα περισσότερα προγράμματά μου. Σε περίπτωση που είστε διατεθειμένοι να αφιερώσετε χρόνο ώστε να μάθετε το Vim ή τον Emacs, τότε συνιστώ ανεπιφύλακτα να μάθετε να χρησιμοποιείτε οποιονδήποτε από τους δύο καθώς θα σας φανούν πολύ χρήσιμοι στην πορεία.

Σε αυτό το βιβλίο, θα χρησιμοποιήσουμε το IDLE, το IDE (Integrated Development Environment - Ολοκληρωμένο Περιβάλλον Ανάπτυξης) και επεξεργαστή κώδικα που επιλέξαμε. Το IDLE εγκαθίσταται εξ ορισμού από το πρόγραμμα εγκατάστασης της Python σε Windows και OS X. Είναι επίσης διαθέσιμο για εγκατάσταση σε Linux και BSD στα αντίστοιχα αποθετήρια (repositories).

Θα δούμε πώς χρησιμοποιούμε το IDLE στο επόμενο τμήμα. Για περισσότερες πληροφορίες, παρακαλώ ανατρέξτε στην τεκμηρίωση του IDLE.

Αν παρ' όλα αυτά θέλετε να εξερευνήσετε άλλες επιλογές όσον αφορά τον επεξεργαστή κώδικα, δείτε τη λίστα επεξεργαστών κώδικα για Python και κάντε την επιλογή σας. Μπορείτε επίσης να επιλέξετε ένα IDE (Ολοκληρωμένο Περιβάλλον Ανάπτυξης) για Python. Δείτε την ολοκληρωμένη λίστα IDE που υποστηρίζουν την Python για περισσότερες λεπτομέρειες. Αφού ξεκινήσετε να γράφετε μεγάλα προγράμματα σε Python, τα ολοκληρωμένα περιβάλλοντα ανάπτυξης μπορούν να φανούν εξαιρετικά χρήσιμα.

Επαναλαμβάνω άλλη μία φορά, παρακαλώ επιλέξτε έναν κατάλληλο επεξεργαστή για Python - μπορεί να κάνει τη συγγραφή προγραμμάτων σε Python πιο διασκεδαστική και εύκολη.

Για τους χρήστες του Vim

Υπάρχει μία καλή εισαγωγή στο πώς να μετατρέψετε το Vim σε ένα ισχυρό Python IDE από τον John M. Anderson.

Για τους χρήστες του Emacs

Υπάρχει μία καλή εισαγωγή στο πώς να μετατρέψετε τον Emacs σε ένα ισχυρό Python IDE από τον Ryan McGuire.

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

Ας επιστρέψουμε στον προγραμματισμό. Είναι παράδοση όποτε μαθαίνουμε μία καινούργια γλώσσα προγραμματισμού, το πρώτο πρόγραμμα που γράφουμε και τρέχουμε να είναι το πρόγραμμα «Hello, World!» («Χαίρε, Κόσμε!») - το μόνο που κάνει είναι να λέει «Χαίρε, Κόσμε!» όταν το τρέξουμε. Όπως έχει πει και ο Simon Cozens 1, είναι «το παραδοσιακό ξόρκι προς τους θεούς του προγραμματισμού για να μας βοηθήσουν να μάθουμε τη γλώσσα καλύτερα» :) .

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

Αν χρησιμοποιείτε το IDLE, επιλέξτε File → New Window και εισάγετε το ακόλουθο πρόγραμμα. Έπειτα επιλέξτε File → Save.

#!/usr/bin/python3
#Filename: helloworld.py

print('Χαίρε, Κόσμε!')

Τρέξτε αυτό το πρόγραμμα ανοίγοντας ένα κέλυφος (τερματικό στο Linux ή γραμμή εντολών στο DOS) και εισάγοντας την εντολή python3 helloworld.py. Σημειώστε ότι πριν δώσετε την εντολή για την εκτέλεση του προγράμματος helloworld.py θα πρέπει να έχετε μεταβεί στο φάκελο όπου είναι αποθηκευμένο το αρχείο helloworld.py.

Αν χρησιμοποιείται το IDLE, επιλέξτε από το μενού Run → Run Module ή χρησιμοποιήστε τη συντόμευση πληκτρολογίου F5.

Το αποτέλεσμα είναι αυτό :

$ python3 helloworld.py Χαίρε, Κόσμε!

Αν πήρατε την έξοδο που φαίνεται πιο πάνω, συγχαρητήρια! Τρέξατε επιτυχώς το πρώτο σας πρόγραμμα σε Python.

Σε περίπτωση που πήρατε κάποιο μήνυμα λάθους, παρακαλώ ξαναγράψτε το παραπάνω πρόγραμμα ακριβώς όπως το βλέπετε πιο πάνω και τρέξτε το ξανά. Σημειώστε οτι η Python κάνει διάκριση πεζών-κεφαλαίων π.χ. το print δεν είναι το ίδιο με το Print -παρατηρήστε το πεζό p στο πρώτο και το κεφαλαίο P στο τελευταίο. Επίσης, βεβαιωθείτε οτι δεν υπάρχουν κενά ή στηλοθέτες (tabs) πριν τον πρώτο χαρακτήρα (γράμμα) σε κάθε γραμμή -θα δούμε γιατί αυτό είναι σημαντικό αργότερα.

Πώς δουλεύει

Ας εξετάσουμε τις δύο πρώτες γραμμές του προγράμματος. Αυτές ονομάζονται σχόλια - οτιδήποτε δεξιά του συμβόλου # είναι σχόλιο. Τα σχόλια χρησιμοποιούνται κυρίως ως σημειώσεις για τον αναγνώστη του προγράμματος.

Η Python δε λαμβάνει υπ' όψη της τα σχόλια, εκτός από την ειδική περίπτωση της πρώτης γραμμής όπως εδώ. Αυτή αποκαλείται γραμμή shebang -οποτεδήποτε οι πρώτοι δύο χαρακτήρες του αρχείου πηγαίου κώδικα είναι #! ακολουθούμενοι από την τοποθεσία ενός προγράμματος, αυτό πληροφορεί το Linux/Unix σύστημα ότι αυτό το πρόγραμμα θα πρέπει να εκτελεστεί με αυτό το διερμηνευτή όταν θα έρθει η ώρα της εκτέλεσής του. Αυτό εξηγείται λεπτομερώς στο επόμενο τμήμα. Σημειώστε ότι μπορείτε πάντα να τρέξετε το πρόγραμμα σε οποιαδήποτε πλατφόρμα καθορίζοντας το διερμηνευτή απ' ευθείας στη γραμμή εντολών όπως για παράδειγμα με την εντολή python3 helloworld.py.

Σημαντικό

Χρησιμοποιείτε τα σχόλια στα προγράμματά σας για να εξηγήσετε κάποιες σημαντικές λεπτομέρειες του προγράμματος -είναι χρήσιμο για τους αναγνώστες του προγράμματός σας έτσι ώστε να μπορούν εύκολα να καταλάβουν τι κάνει το πρόγραμμα. Θυμηθείτε, αυτό το άτομο μπορεί να είστε εσείς ο ίδιος μετά από έξι μήνες!

Τα σχόλια ακολουθούνται από μία εντολή Python. Εδώ καλούμε τη συνάρτηση (function) print που απλά τυπώνει το κείμενο 'Χαίρε, Κόσμε!'. Θα μάθουμε περισσότερα σχετικά με τις συναρτήσεις σε ένα από τα επόμενα κεφάλαια -αυτό που πρέπει να κατανοήσετε αυτή τη στιγμή είναι πως οτιδήποτε δώσετε ανάμεσα στις παρενθέσεις θα τυπωθεί στην οθόνη. Σε αυτή την περίπτωση, δίνουμε το 'Χαίρε, Κόσμε!' το οποίο αποκαλούμε συμβολοσειρά (string) - μην ανησυχείτε, θα εξερευνήσουμε αυτές τις ορολογίες λεπτομερώς αργότερα.

Εκτελέσιμα προγράμματα Python

Τα παρακάτω έχουν ισχύ μόνο για χρήστες Linux/Unix αλλά οι χρήστες Windows μπορεί να είναι εξίσου περίεργοι σχετικά με την πρώτη γραμμή του προγράμματος. Πρώτα, πρέπει να δώσουμε στο πρόγραμμα δικαίωμα εκτέλεσης χρησιμοποιώντας την εντολή chmod και μετά να τρέξουμε το πηγαίο πρόγραμμα.

$ chmod a+x helloworld.py
$ ./helloworld.py
Χαίρε, Κόσμε!

Η εντολή chmod χρησιμοποιείται εδώ για να αλλάξουμε (change) την κατάσταση (mode) του αρχείου δίνοντας δικαιώματα εκτέλεσης (execute) σε όλους (all) τους χρήστες του συστήματος. Έπειτα, εκτελούμε το πρόγραμμα απ' ευθείας καθορίζοντας την τοποθεσία του αρχείου πηγαίου κώδικα. Χρησιμοποιούμε το ./ για να υποδηλώσουμε οτι το πρόγραμμα βρίσκεται στην τρέχουσα διαδρομή (στο φάκελο που είμαστε).

Για να γίνουν τα πράγματα πιο διασκεδαστικά, μπορείτε να μετονομάσετε το αρχείο απλώς σε helloworld και να το εκτελείτε με ./helloworld και θα συνεχίσει να λειτουργεί εφ' όσον το σύστημα γνωρίζει οτι πρέπει να το τρέξει το πρόγραμμα χρησιμοποιώντας το διερμηνευτή του οποίου η τοποθεσία καθορίζεται στην πρώτη γραμμή του κώδικα.

Τι γίνεται όμως αν δε γνωρίζουμε πού βρίσκεται ο διερμηνευτής της Python; Τότε, μπορείτε να χρησιμοποιήσετε το ειδικό πρόγραμμα env που είναι διαθέσιμο σε συστήματα Linux/Unix. Απλά τροποποιήστε την πρώτη γραμμή του προγράμματος ώς εξής:

#!/usr/bin/env python3

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

Μέχρι τώρα, μπορούσαμε να τρέξουμε το πρόγραμμά μας εφ' όσον γνωρίζαμε ακριβώς τη διαδρομή προς αυτό. Αν όμως θέλαμε να μπορούμε να το τρέξουμε από οπουδήποτε; Αυτό μπορούμε να το επιτύχουμε αποθηκεύοντας το πρόγραμμα σε μία από τις διαδρομές που περιέχονται στη μεταβλητή περιβάλλοντος PATH. Κάθε φορά που τρέχετε οποιοδήποτε πρόγραμμα, το σύστημα το αναζητά σε κάθε μία από τις διαδρομές που περιέχονται στη μεταβλητή περιβάλλοντος PATH και, αν βρεθεί, το πρόγραμμα εκτελείται. Μπορούμε να κάνουμε το πρόγραμμά μας διαθέσιμο από παντού απλά αντιγράφοντας το αρχείο πηγαίου κώδικα σε μία από τις διαδρομές που περιέχονται στην PATH.

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
$ cp helloworld.py /usr/local/bin/helloworld
$ helloworld
Χαίρε, Κόσμε!

Σημειώστε ότι οι φάκελοι που περιέχονται στην PATH είναι συνήθως φάκελοι του συστήματος. Γι' αυτό χρειάζεστε δικαιώματα υπερχρήστη για να αντιγράψετε σ' αυτούς ένα αρχείο, π.χ. βάζοντας μπροστά στην εντολή σας το sudo, δηλαδή: sudo cp helloworld.py /usr/local/bin/helloworld ή άλλη εντολή που σας δίνει δικαιώματα υπερχρήστη (συμβουλευτείτε την τεκμηρίωση του συστήματός σας γι' αυτό το θέμα).

Μπορούμε να δούμε τα περιεχόμενα της PATH χρησιμοποιώντας την εντολή echo (σε τερματικό) και προσθέτοντας πριν το όνομα της μεταβλητής το σύμβολο $ για να δείξουμε στο κέλυφος ότι θέλουμε την τιμή της συγκεκριμένης μεταβλητής. Μπορείτε να προσθέσετε μία διαδρομή στη μεταβλητή PATH δίνοντας σε τερματικό την εντολή PATH=$PATH:/home/swaroop/mydir όπου '/home/swaroop/mydir' είναι η διαδρομή που θέλετε να προσθέσετε.

Σημείωση

Η προσθήκη μιας διαδρομής στην $PATH με την εντολή PATH=$PATH:/home/swaroop/mydir λειτουργεί προσωρινά, και το αποτέλεσμά της χάνεται μετά από επανεκκίνηση του συστήματος. Συμβουλευτείτε την τεκμηρίωση του συστήματός σας για μόνιμη προσθήκη διαδρομής στην $PATH.

Αυτή η μέθοδος είναι πολύ χρήσιμη αν θέλετε να γράψετε χρήσιμα scripts που θέλετε να μπορείτε να τα τρέχετε από οπουδήποτε, οποτεδήποτε. Είναι σα να δημιουργείτε τις δικές σας εντολές όπως π.χ. η εντολή cd ή οποιαδήποτε άλλη εντολή χρησιμοποιείτε σε ένα τερματικό στο Linux ή στη γραμμή εντολών του DOS.

Προσοχή

Όσο αφορά την Python ένα πρόγραμμα, ένα script ή λογισμικό όλα έχουν την ίδια σημασία.

Αναζητώντας βοήθεια

Αν χρειάζεστε γρήγορα πληροφορίες σχετικά με μία συνάρτηση ή εντολή στην Python, τότε μπορείτε να χρησιμοποιήσετε την ενσωματωμένη συνάρτηση help. Είναι ιδιαίτερα χρήσιμη ειδικά όταν χρησιμοποιείτε την κονσόλα του διερμηνευτή. Για παράδειγμα, δώστε help(print) -θα εμφανίσει την τεκμηρίωση για τη συνάρτηση print που χρησιμοποιείται για την εκτύπωση στην οθόνη.

Σημείωση

Πιέστε το q για να κλείσετε τη βοήθεια.

Με τον ίδιο τρόπο, μπορείτε να βρείτε πληροφορίες σχετικά με σχεδόν οτιδήποτε στην Python. Χρησιμοποιήστε τη help() για να μάθετε περισσότερα για τη χρήση της ίδιας της help!

Σε περίπτωση που χρειάζεστε βοήθεια σχετικά με τελεστές (operators) όπως το return, τότε πρέπει να τους τοποθετήσετε ανάμεσα σε απλά εισαγωγικά π.χ. help('return') έτσι ώστε να μη μπερδευτεί η Python σχετικά με το τι προσπαθείτε να κάνετε.

Σύνοψη

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


  1. Ο συγγραφέας του καταπληκτικού βιβλίου "Beginning Perl"