# 2. Χρησιμοποιώντας τον Interpreter της Python

## 2.1. Κάνοντας invoke τον Interpreter

Ο Interpreter της Python συνήθως είναι εγκατεστημένος ως `/usr/local/bin/python3.12` σε εκείνα τα μηχανήματα όπου είναι διαθέσιμο· βάζοντας `/usr/local/bin` στη διαδρομή αναζήτησης του Unix shell σας επιτρέπει να το εκκινήσετε πληκτρολογώντας την εντολή:

    python3.12

στο shell. [1] Εφόσον η επιλογή του καταλόγου όπου βρίσκεται ο interpreter είναι μια επιλογή εγκατάστασης, και άλλα μέρη είναι πιθανά∙ επικοινωνήστε με τον τοπικό σας guru της Python ή τον διαχειριστή συστήματος. (π.χ., `/usr/local/python` είναι μια δημοφιλής εναλλακτική τοποθεσία.)

Σε μηχανήματα με Windows όπου έχετε εγκαταστήσει την Python από το Microsoft Store, η εντολή `python3.12` θα είναι διαθέσιμη. Εάν έχετε το πρόγραμμα εκκίνησης py.exe launcher εγκατεστημένο, μπορείτε να χρησιμοποιήσετε την εντολή `py`. Βλ. Excursus: Setting environment variables για άλλους τρόπους εκκίνησης της Python.

Η πληκτρολόγηση ενός χαρακτήρα τέλους αρχείου (`Control`-`D` στο Unix, `Control`-`Z` στα Windows) στην κύρια γραμμή εντολών αναγκάζει τον interpreter να βγει με μηδενική κατάσταση εξόδου. Εάν αυτό δεν λειτουργεί, μπορείτε να βγείτε από τον διερμηνέα πληκτρολογώντας την ακόλουθη εντολή: `quit()`.

Οι δυνατότητες επεξεργασίας γραμμής του interpreter περιλαμβάνουν interactive επεξεργασία, αντικατάσταση ιστορικού και συμπλήρωση κώδικα σε συστήματα που υποστηρίζουν την GNU Readline βιβλιοθήκη. Ίσως ο πιο γρήγορος έλεγχος για να δείτε αν υποστηρίζεται η επεξεργασία της γραμμής εντολών είναι να πληκτρολογήσετε `Control`-`P` στην πρώτη γραμμή εντολών Python που λαμβάνετε. Εάν ηχήσει, έχετε επεξεργασία γραμμής εντολών∙ βλ. το παράρτημα Διαδραστική Επεξεργασία Input και Αντικατάσταση Ιστορικού για εισαγωγή στα πλήκτρα. Εάν δεν φαίνεται να συμβαίνει τίποτα ή αν ηχήσει το `^P`, η επεξεργασία της γραμμής εντολών δεν είναι διαθέσιμη∙ θα μπορείτε να χρησιμοποιήσετε μόνο το backspace για να αφαιρέσετε χαρακτήρες από την τρέχουσα γραμμή.

Ο interpreter λειτουργεί κάπως όπως το Unix shell: όταν καλείται μια standard είσοδο συνδεδεμένη σε μια συσκευή tty, διαβάζει και εκτελεί εντολές αλληλεπιδραστικά∙ όταν καλείται με ένα όρισμα ονόματος αρχείου ή με ένα αρχείο ως standard είσοδο, διαβάζει και εκτελεί ένα script από αυτό το αρχείο.

Ένας δεύτερος τρόπος εκκίνησης του interpreter είναι `python -c command [arg] ...`, η οποία εκτελεί τις εντολές στο command, ανάλογο με την επιλογή `-c` του shell. Εφόσον οι δηλώσεις Python συχνά περιέχουν κενά διαστήματα ή άλλους χαρακτήρες που είναι ειδικοί για το shell, συνήθως συνίσταται να αναφέρετε το command στο σύνολο του.

Ορισμένα Python modules είναι επίσης χρήσιμα ως scripts. Αυτά μπορούν να κληθούν χρησιμοποιώντας το `python -m module [arg] ...`, το οποίο εκτελεί το πηγαίο αρχείο για το module σαν να είχατε γράψει το πλήρες όνομα του, στη γραμμή εντολών.

Όταν χρησιμοποιείται ένα script αρχείο, μερικές φορές είναι χρήσιμο να μπορείτε να εκτελέσετε το script και να εισέλθετε σε interactive λειτουργία μετά. Αυτό μπορεί να γίνει περνώντας το `-i` πριν από το script.

Όλες οι επιλογές της γραμμής εντολών περιγράφονται στο Command line and environment.

### 2.1.1. Εισαγωγή Ορίσματος

Όταν είναι γνωστά στον interpreter, το όνομα του script και τα πρόσθετα ορίσματα στην συνέχεια μετατρέπονται σε λίστα συμβολοσειρών και εκχωρούνται στην μεταβλητή `argv` στο module `sys`. Μπορείτε να αποκτήσετε πρόσβαση σε αυτήν την λίστα εκτελώντας το `import sys`. Το μήκος της λίστας είναι τουλάχιστον ένα∙ όταν δεν δίνονται script και δεν δίνονται ορίσματα, το `sys.argv[0]` είναι μια κενή συμβολοσειρά. Όταν το όνομα του script δίνεται ως `'-'` (που σημαίνει standard είσοδος), το `sys.argv[0]` ορίζεται ως `'-'`. Όταν χρησιμοποιείται η εντολή `-c`, το `sys.argv[0]``ορίζεται σε ``'-c'`. Όταν χρησιμοποιείται η εντολή `-m` , το `sys.argv[0]` ορίζεται ως το πλήρες όνομα του module που βρίσκεται. Οι επιλογές που βρέθηκαν μετά την εντολή `-c` ή το `-m` module δεν καταναλώνονται από τον επεξεργαστή επιλογών του interpreter της Python αλλά αφήνονται στο `sys.argv` για την εντολή ή το module να το διαχειριστεί.

### 2.1.2. Interactive Λειτουργία

Όταν διαβάζονται εντολές από ένα tty, ο interpreter λέγεται ότι βρίσκεται σε interactive λειτουργία. Σε αυτή τη λειτουργία υπενθυμίζει την επόμενη εντολή με την κύρια εντολή, συνήθως τρία σύμβολα μεγαλύτερο (`>>>`)∙ για τις γραμμές συνέχειας, υπενθυμίζει με τη δευτερεύουσα εντολή, από προεπιλογή τρεις τελείες (`...`). Ο interpreter εκτυπώνει ένα μήνυμα καλωσορίσματος που αναφέρει τον αριθμό έκδοσης και μια ειδοποίηση πνευματικών δικαιωμάτων πριν εκτυπώσει το πρώτο μήνυμα:

    $ python3.12
    Python 3.12 (default, April 4 2022, 09:25:04)
    [GCC 10.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

Απαιτούνται γραμμές συνέχειας όταν εισάγεται μια κατασκευή πολλών γραμμών. Για παράδειγμα ρίξτε μια ματιά σε αυτήν την δήλωση `if`:

    >>> the_world_is_flat = True
    >>> if the_world_is_flat:
    ...     print("Be careful not to fall off!")
    ...
    Be careful not to fall off!

Για περισσότερα σχετικά με την interactive λειτουργία, βλ. Διαδραστική Λειτουργία.

## 2.2. Ο Interpreter και το Περιβάλλον του

### 2.2.1. Κωδικοποίηση Πηγαίου Κώδικα

Από προεπιλογή, τα πηγαία αρχεία Python αντιμετωπίζονται ως κωδικοποιημένα στο UTF-8. Σε αυτήν την κωδικοποίηση, οι χαρακτήρες των περισσότερων γλωσσών στον κόσμο μπορούν να χρησιμοποιηθούν ταυτόχρονα σε literal συμβολοσειρές, αναγνωριστικά και σχόλια — αν και η τυπική βιβλιοθήκη χρησιμοποιεί μόνο χαρακτήρες ASCII για αναγνωριστικά, μια σύμβαση που πρέπει να ακολουθεί οποιοδήποτε φορητός κώδικας. Για να εμφανίσει σωστά όλους αυτούς τους χαρακτήρες, το λογισμικό επεξεργασίας σας πρέπει να αναγνωρίσει ότι το αρχείο είναι UTF-8 και πρέπει να χρησιμοποιεί μια γραμματοσειρά που να υποστηρίζει όλους τους χαρακτήρες του αρχείου.

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

    # -*- coding: encoding -*-

όπου το encoding είναι ένα από τα έγκυρα `codecs` που υποστηρίζονται από την Python.

Για παράδειγμα, για να δηλώσετε ότι πρόκειται να χρησιμοποιηθεί η κωδικοποίηση Windows-1252 , η πρώτη γραμμή του αρχείου του πηγαίου κώδικα θα πρέπει να είναι:

    # -*- coding: cp1252 -*-

Μια εξαίρεση στον κανόνα first line είναι όταν ο πηγαίος κώδικας ξεκινά με μια γραμμή UNIX «shebang». Σε αυτήν την περίπτωση, η δήλωση κωδικοποίησης θα πρέπει να προστεθεί ως δεύτερη γραμμή του αρχείου. Για παράδειγμα:

    #!/usr/bin/env python3
    # -*- coding: cp1252 -*-

Υποσημειώσεις

[1]

Στο Unix, ο Python 3.x interpreter από προεπιλογή δεν είναι εγκατεστημένος με το εκτελέσιμο αρχείο που ονομάζεται `python`, έτσι ώστε να μην έρχεται σε conflict με ένα εκτελέσιμο Python 2.x που εγκαθίσταται ταυτόχρονα.