1. Ανοίγοντας την όρεξή σας
***************************

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

Εάν είστε επαγγελματίας προγραμματιστής λογισμικού, μπορεί να
χρειαστεί να εργαστείτε με πολλές βιβλιοθήκες C/C++/Java, αλλά ο
συνηθισμένος κύκλος εγγραφής/compile/δοκιμής/re-compile είναι πολύ
αργός.  Ίσως γράφετε ένα test suite για μια τέτοια βιβλιοθήκη και
βρίσκετε τη δημιουργία κώδικα testing μια κουραστική διαδικασία.  Ή
ίσως έχετε γράψει ένα πρόγραμμα που θα μπορούσε να χρησιμοποιεί μια
γλώσσα επέκτασης, και δεν θέλετε να σχεδιάσετε και να εφαρμόσετε μια
εντελώς νέα γλώσσα για την εφαρμογή σας.

Η Python είναι απλώς η γλώσσα για εσάς.

Θα μπορούσατε να γράψετε ένα Unix shell script ή Windows batch αρχεία
για ορισμένες από αυτές τις εργασίες, αλλά τα shell scripts είναι τα
καλύτερα για τη μετακίνηση αρχείων και την αλλαγή δεδομένων κειμένου,
δεν είναι κατάλληλα για εφαρμογές ή παιχνίδια GUI. Θα μπορούσατε να
γράψετε ένα C/C++/Java πρόγραμμα, αλλά μπορεί να χρειαστεί πολύς
χρόνος ανάπτυξης για να δημιουργηθεί μια πρώτη έκδοση του
προγράμματος.  Η Python είναι πιο απλή στη χρήση, διαθέσιμη σε
λειτουργικά συστήματα Windows, macOS και Unix και θα σας βοηθήσει να
ολοκληρώσετε τη δουλειά πιο γρήγορα.

Η Python είναι απλή στη χρήση, αλλά είναι μια πραγματική γλώσσα
προγραμματισμού, που προσφέρει πολύ περισσότερη δομή και υποστήριξη
για μεγάλα προγράμματα από ό,τι μπορούν να προσφέρουν τα shell scripts
ή τα batch αρχεία. Από την άλλη πλευρά, η Python προσφέρει επίσης πολύ
περισσότερο έλεγχο σφαλμάτων από τη C και, όντας μια γλώσσα *πολύ
υψηλού επιπέδου*, έχει ενσωματωμένους τύπους δεδομένων υψηλού
επιπέδου, όπως ευέλικτους πίνακες, και λεξικά.  Λόγω των πιο γενικών
τύπων δεδομένων της, η Python μπορεί να εφαρμοστεί σε έναν πολύ
μεγαλύτερο τομέα προβλημάτων από την Awk ή ακόμα και την Perl, ωστόσο
πολλά πράγματα είναι τουλάχιστον τόσο εύκολα στην Python όσο σε αυτές
τις γλώσσες.

Η Python σάς επιτρέπει να χωρίσετε το πρόγραμμά σας σε modules που
μπορούν να επαναχρησιμοποιηθούν σε άλλα προγράμματα Python.  Έρχεται
με μια μεγάλη συλλογή standard modules που μπορείτε να χρησιμοποιήσετε
ως βάση των προγραμμάτων σας --- ή ως παράδειγμα για να ξεκινήσετε να
μαθαίνετε να προγραμματίζετε σε Python.  Ορισμένα από αυτά τα modules
παρέχουν πράγματα όπως I/O αρχείων, κλήσεις συστήματος, sockets, ακόμη
και interfaces σε toolkits γραφικών διεπαφής χρήστη, όπως το Tk.

Η Python είναι μια interpreted γλώσσα, η οποία μπορεί να σας
εξοικονομήσει σημαντικό χρόνο κατά την ανάπτυξη του προγράμματος,
επειδή δεν απαιτείται compilation και linking.  Ο interpreter μπορεί
να χρησιμοποιηθεί διαδραστικά, γεγονός που καθιστά εύκολο τον
πειραματισμό με χαρακτηριστικά της γλώσσας, τη σύνταξη προγραμμάτων ή
τον έλεγχο συναρτήσεων κατά την ανάπτυξη προγράμματος από κάτω προς τα
πάνω. Είναι επίσης μια εύχρηστη αριθμομηχανή.

Η Python επιτρέπει στα προγράμματα να γράφονται συμπαγή και
ευανάγνωστα. Τα προγράμματα που είναι γραμμένα σε Python είναι συνήθως
πολύ μικρότερα από τα αντίστοιχα προγράμματα C, C++ ή Java, για
διάφορους λόγους:

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

* η ομαδοποίηση δηλώσεων γίνεται με εσοχή αντί για αγκύλες αρχής και
  λήξης∙

* δεν απαιτούνται δηλώσεις μεταβλητών ή ορισμάτων.

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

Παρεμπιπτόντως, η γλώσσα πήρε το όνομά της από την εκπομπή του BBC
"Monty Python's Flying Circus" και δεν έχει καμία σχέση με ερπετά. Η
αναφορά σε σκετς Monty Python στην τεκμηρίωση όχι μόνο επιτρέπεται,
αλλά και ενθαρρύνεται!

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

Στο επόμενο κεφάλαιο, εξηγείται η μηχανική της χρήσης του interpreter.
Αυτή είναι μάλλον πεζή πληροφορία, αλλά απαραίτητη για τη δοκιμή των
παραδειγμάτων που παρουσιάζονται αργότερα.

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