# 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 και τέλος αγγίζοντας προηγμένες έννοιες όπως εξαιρέσεις και κλάσεις που καθορίζονται από τον χρήστη.