This document is for an old version of Python that is no longer supported. You should upgrade, and read the Python documentation for the current stable release.

# Το Python Tutorial

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

The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the Python Web site, https://www.python.org/, and may be freely distributed. The same site also contains distributions of and pointers to many free third party Python modules, programs and tools, and additional documentation.

Ο διερμηνέας της Python επεκτείνεται εύκολα με νέες συναρτήσεις και τύπους δεδομένων που υλοποιούνται σε C ή C++ (ή άλλες γλώσσες που μπορούν να κληθούν από τη C). Η Python είναι επίσης κατάλληλη ως γλώσσα επέκτασης για προσαρμόσιμες εφαρμογές.

Αυτό το tutorial εισάγει τον αναγνώστη ανεπίσημα στις βασικές έννοιες και δυνατότητες της γλώσσας και του συστήματος Python. Βοηθάει να έχετε πρόχειρο έναν διερμηνέα Python για πρακτική εμπειρία, αλλά όλα τα παραδείγματα είναι αυτοτελή, οπότε το tutorial μπορεί να διαβαστεί και εκτός σύνδεσης.

Για μια περιγραφή των τυποποιημένων αντικειμένων και ενοτήτων, δείτε The Python Standard Library. Το The Python Language Reference δίνει έναν πιο επίσημο ορισμό της γλώσσας. Για να γράψετε επεκτάσεις σε C ή C++, διαβάστε το Extending and Embedding the Python Interpreter και το Python/C API Reference Manual. Υπάρχουν επίσης αρκετά βιβλία που καλύπτουν την Python σε βάθος.

Αυτό το tutorial δεν προσπαθεί να είναι περιεκτικό και να καλύψει κάθε χαρακτηριστικό ή ακόμη και κάθε συχνά χρησιμοποιούμενο χαρακτηριστικό. Αντίθετα, θα σας παρουσιάσει πολλά από τα πιο αξιοσημείωτα χαρακτηριστικά της Python και θα σας δώσει μια καλή ιδέα για τη γεύση και το ύφος της γλώσσας. Αφού το διαβάσετε, θα είστε σε θέση να διαβάζετε και να γράφετε modules και προγράμματα Python, και θα είστε έτοιμοι να μάθετε περισσότερα για τα διάφoρα modules βιβλιοθηκών Python που περιγράφονται στο The Python Standard Library.

Αξίζει επίσης να διαβάσετε το Γλωσσάρι.

- 1. Ανοίγοντας την όρεξή σας
- 2. Χρησιμοποιώντας τον Interpreter της Python
  - 2.1. Κάνοντας invoke τον Interpreter
    - 2.1.1. Εισαγωγή Ορίσματος
    - 2.1.2. Interactive Λειτουργία
  - 2.2. Ο Interpreter και το Περιβάλλον του
    - 2.2.1. Κωδικοποίηση Πηγαίου Κώδικα
- 3. Μία Άτυπη Εισαγωγή στην Python
  - 3.1. Χρησιμοποιώντας την Python ως Αριθμομηχανή
    - 3.1.1. Αριθμοί
    - 3.1.2. Strings
    - 3.1.3. Λίστες
  - 3.2. Πρώτα Βήματα Προς Τον Προγραμματισμό
- 4. Περισσότερα εργαλεία Ελέγχου Ροής
  - 4.1. Προτάσεις `if`
  - 4.2. Προτάσεις `for`
  - 4.3. Η συνάρτηση `range()`
  - 4.4. `break` and `continue` Statements, and `else` Clauses on Loops
  - 4.5. Προτάσεις `pass`
  - 4.6. Καθορισμός Συναρτήσεων
  - 4.7. Περισσότερο για τον Καθορισμό Συναρτήσεων
    - 4.7.1. Προεπιλεγμένες Τιμές Ορίσματος
    - 4.7.2. Ορίσματα Keyword
    - 4.7.3. Ειδικές παράμετροι
      - 4.7.3.1. Παράμετροι Θέσης ή Keyword
      - 4.7.3.2. Παράμετροι Μόνο-Θέσης
      - 4.7.3.3. Ορίσματα μόνο Keyword
      - 4.7.3.4. Παραδείγματα Συναρτήσεων
      - 4.7.3.5. Ανακεφαλαίωση
    - 4.7.4. Λίστες Αυθαίρετων Ορισμάτων
    - 4.7.5. Unpacking Λίστες Ορισμάτων
    - 4.7.6. Εκφράσεις Lambda
    - 4.7.7. Συμβολοσειρές Τεκμηρίωσης
    - 4.7.8. Annotations Συναρτήσεων
  - 4.8. Intermezzo: Στυλ Κώδικα
- 5. Δομές Δεδομένων
  - 5.1. Περισσότερα για τις Λίστες
    - 5.1.1. Χρήστη Λιστών ως Στοίβες (Stacks)
    - 5.1.2. Χρήση λιστών ως Ουρές (Queues)
    - 5.1.3. Comprehensions Λίστας
    - 5.1.4. Comprehensions Ένθετων Λιστών
  - 5.2. Η δήλωση `del`
  - 5.3. Πλειάδες (Tuples) και Ακολουθίες
  - 5.4. Σύνολα (Sets)
  - 5.5. Λεξικά (Dictionaries)
  - 5.6. Τεχνικές Looping
  - 5.7. Περισσότερα για τις συνθήκες
  - 5.8. Σύγκριση ακολουθιών και άλλων τύπων
- 6. Modules
  - 6.1. Περισσότερα για τα Modules
    - 6.1.1. Εκτέλεση modules ως scripts
    - 6.1.2. Το Search Path του Module
    - 6.1.3. «Compiled» Python αρχεία
  - 6.2. Standard Modules
  - 6.3. Η συνάρτηση `dir()`
  - 6.4. Πακέτα
    - 6.4.1. Εισάγοντας * από ένα Πακέτο
    - 6.4.2. Intra-package αναφορές
    - 6.4.3. Πακέτα σε Πολλαπλούς Καταλόγους
- 7. Είσοδος και Έξοδος
  - 7.1. Ομορφότερη Μορφοποίηση Εξόδου
    - 7.1.1. Μορφοποιημένα String Literals
    - 7.1.2. Η μέθοδος String format()
    - 7.1.3. Χειροκίνητη Μορφοποίηση Συμβολοσειρών
    - 7.1.4. Παλιά μορφοποίηση συμβολοσειράς
  - 7.2. Ανάγνωση και Εγγραφή Αρχείων
    - 7.2.1. Μέθοδοι Αντικειμένων Αρχείων
    - 7.2.2. Αποθήκευση δομημένων δεδομένων με `json`
- 8. Σφάλματα και Εξαιρέσεις
  - 8.1. Syntax Errors (Συντακτικά Σφάλματα)
  - 8.2. Exceptions (Εξαιρέσεις)
  - 8.3. Διαχείριση Εξαιρέσεων
  - 8.4. Raising Εξαιρέσεων
  - 8.5. Αλυσιδωτές Εξαιρέσεις
  - 8.6. Εξαιρέσεις που καθορίζονται από το χρήστη
  - 8.7. Καθορισμός ενεργειών καθαρισμού
  - 8.8. Προκαθορισμένες ενέργειες καθαρισμού
- 9. Κλάσεις
  - 9.1. Λίγα λόγια για Ονόματα και Αντικείμενα
  - 9.2. Εμβέλεια και Πεδία Ονομάτων στην Python
    - 9.2.1. Παράδειγμα Εμβέλειας και Χώρων Ονομάτων
  - 9.3. Μια πρώτη ματιά στις Κλάσεις
    - 9.3.1. Σύνταξη Ορισμού Κλάσης
    - 9.3.2. Αντικείμενα Κλάσης
    - 9.3.3. Αντικείμενα Στιγμιοτύπων
    - 9.3.4. Αντικείμενα Μεθόδου
    - 9.3.5. Μεταβλητές Κλάσης και Στιγμιότυπου
  - 9.4. Τυχαίες Παρατηρήσεις
  - 9.5. Κληρονομικότητα
    - 9.5.1. Πολλαπλή Κληρονομικότητα
  - 9.6. Ιδιωτικές Μεταβλητές
  - 9.7. Μικροπράγματα
  - 9.8. Επαναλήπτες
  - 9.9. Γεννήτορες (Generators)
  - 9.10. Εκφράσεις Γεννήτορων
- 10. Σύντομη ξενάγηση στην Standard Βιβλιοθήκη
  - 10.1. Διεπαφή Λειτουργικού Συστήματος
  - 10.2. Wildcard Αρχεία
  - 10.3. Ορίσματα γραμμής εντολών
  - 10.4. Ανακατεύθυνση εξόδου σφάλματος και τερματισμός προγράμματος
  - 10.5. Ταίριασμα μοτίβων συμβολοσειρών
  - 10.6. Μαθηματικά
  - 10.7. Πρόσβαση στο Διαδίκτυο
  - 10.8. Ημερομηνίες και ώρες
  - 10.9. Συμπίεση Δεδομένων
  - 10.10. Μέτρηση επίδοσης
  - 10.11. Έλεγχος ποιότητας
  - 10.12. Batteries Included
- 11. Σύντομη περιήγηση στην Πρότυπη Βιβλιοθήκη — Μέρος II
  - 11.1. Μορφοποίηση εξόδου
  - 11.2. Templating
  - 11.3. Εργασία με δυαδικές διατάξεις εγγραφής δεδομένων
  - 11.4. Multi-threading
  - 11.5. Logging
  - 11.6. Αδύναμες αναφορές
  - 11.7. Εργαλεία για εργασία με λίστες
  - 11.8. Decimal Floating Point Arithmetic
- 12. Εικονικά Περιβάλλοντα και πακέτα
  - 12.1. Εισαγωγή
  - 12.2. Δημιουργία εικονικών περιβάλλοντων
  - 12.3. Διαχείριση Πακέτων με το pip
- 13. Και τώρα τι;
- 14. Διαδραστική Επεξεργασία Input και Αντικατάσταση Ιστορικού
  - 14.1. Συμπλήρωση Tab και Επεξεργασία Ιστορικού
  - 14.2. Εναλλακτικές λύσεις για τον Διαδραστικό Interpreter
- 15. Floating Point Arithmetic: Issues and Limitations
  - 15.1. Σφάλμα Αναπαράστασης
- 16. Παράρτημα
  - 16.1. Διαδραστική Λειτουργία
    - 16.1.1. Διαχείριση Σφαλμάτων
    - 16.1.2. Εκτελέσιμα Python Scripts
    - 16.1.3. Το διαδραστικό αρχείο εκκίνησης
    - 16.1.4. Τα Modules Προσαρμογής