A Byte of Python" Θα Μπορούσε Να Μεταφραστεί "Το Δάγκωμα Του Πύθωνα", Τότε Θεωρήστε Το Βιβλίο Αυτό Ως Το Αντίδοτο Στα "Δηλητηριώδη" Προβλήματα Του Προγραμματισμού
Total Page:16
File Type:pdf, Size:1020Kb
Contents Articles Python el:Περιεχόμενα 1 Python el:Μεταφράσεις 2 Python el:Προοίμιο 3 Python el:Εισαγωγή 6 Python el:Εγκατάσταση 10 Python el:Τα πρώτα βήματα 12 Python el:Τα βασικά 17 Python el:Τελεστές και εκφράσεις 25 Python el:Έλεγχος ροής 30 Python el:Συναρτήσεις 37 Python el:Αρθρώματα 47 Python el:Δομές δεδομένων 54 Python el:Επίλυση προβλημάτων 65 Python el:Αντικειμενοστρεφής προγραμματισμός 74 Python el:Είσοδος έξοδος 83 Python el:Εξαιρέσεις 87 Python el:Πρότυπη βιβλιοθήκη 92 Python el:Περισσότερα 97 Python el:Και τώρα τι γίνεται 102 Python el:Παράρτημα Γλωσσάρι 107 Python el:Παράρτημα ΕΛΛΑΚ 111 Python el:Παράρτημα Περί 113 Python el:Παράρτημα Ιστορικό αναθεωρήσεων 114 References Article Sources and Contributors 116 Article Licenses License 117 Python el:Περιεχόμενα 1 Python el:Περιεχόμενα • Πρώτη σελίδα (στα Αγγλικά) 1. → Μεταφράσεις 2. → Προοίμιο 3. → Εισαγωγή 4. → Εγκατάσταση 5. → Τα πρώτα βήματα 6. → Τα βασικά 7. → Τελεστές και εκφράσεις 8. → Έλεγχος ροής 9. → Συναρτήσεις 10. → Αρθρώματα 11. → Δομές δεδομένων 12. → Επίλυση προβλημάτων 13. → Αντικειμενοστρεφής προγραμματισμός 14. → Είσοδος έξοδος 15. → Εξαιρέσεις 16. → Πρότυπη βιβλιοθήκη 17. → Περισσότερα 18. → Και τώρα τι γίνεται; 19. → Παράρτημα: Γλωσσάρι 20. → Παράρτημα: ΕΛΛΑΚ 21. → Παράρτημα: Περί 22. → Παράρτημα: Ιστορικό αναθεωρήσεων Προηγούμενο Επόμενο Python el:Μεταφράσεις 2 Python el:Μεταφράσεις Χάρη στη δουλειά πολλών εθελοντών, διατίθενται πολλές μεταφράσεις του βιβλίου, σε πολλές γλώσσες: • Κινέζικα, Απλά • Κινέζικα, Παραδοσιακά • Ιταλικά • Γερμανικά • Νορβηγικά • Ινδονησιακά • Πολωνικά • Καταλανικά • Πορτογαλικά • Ρουμανικά • Πορτογαλικά Βραζιλίας • Γαλλικά • Δανικά • Ισπανικά • Αραβικά • Σουηδικά • Ρωσικά και Ουκρανικά • Τουρκικά • Μογγολικά • και βεβαίως... Ελληνικά! Μπορείτε να δείτε μια ενημερωμένη λίστα με λεπτομέρειες για κάθε γλώσσα στη σελίδα Translations (στα Αγγλικά). Την ελληνική μετάφραση του βιβλίου την ανέλαβε η ελληνική κοινότητα του Ubuntu [1], με σκοπό να χρησιμοποιηθεί το υλικό αυτό για τα online μαθήματά της. → Προηγούμενο → Επόμενο → Πίσω στα περιεχόμενα References [1] http:/ / ubuntu-gr. org Python el:Προοίμιο 3 Python el:Προοίμιο Η Python είναι πιθανότατα μια από τις λιγοστές γλώσσες προγραμματισμού που είναι τόσο εύκολες όσο και ισχυρές. Αυτό είναι εξίσου καλό για τους αρχάριους όσο και για τους έμπειρους, και το πιο σημαντικό απ' όλα: είναι διασκεδαστικό να προγραμματίζεις με την Python. Αυτό το βιβλίο έχει σκοπό να σας βοηθήσει να μάθετε την υπέροχη αυτή γλώσσα και να σας δείξει πώς να κάνετε τα πράγματα εύκολα και απλά. Αν ο τίτλος "A Byte of Python" θα μπορούσε να μεταφραστεί "Το δάγκωμα του Πύθωνα", τότε θεωρήστε το βιβλίο αυτό ως το αντίδοτο στα "δηλητηριώδη" προβλήματα του προγραμματισμού. Σε ποιούς απευθύνεται αυτό το βιβλίο Το βιβλίο αυτό είναι ένας οδηγός ή ένα βοήθημα για τη γλώσσα προγραμματισμού Python. Κυρίως απευθύνεται σε νέους προγραμματιστές, αλλά είναι επίσης χρήσιμο και για τους έμπειρους. Ο στόχος του βιβλίου αυτού είναι να σας μάθει την Python, με μοναδική προαπαιτούμενη γνώση να ξέρετε να αποθηκεύετε απλά αρχεία κειμένου. Αν έχετε προηγούμενη εμπειρία στον προγραμματισμό, και πάλι μπορείτε να μάθετε την Python από αυτό το βιβλίο. Αν όντως έχετε κάποια προγραμματιστική εμπειρία, θα σας ενδιαφέρουν οι διαφορές ανάμεσα στην Python και την αγαπημένη σας γλώσσα προγραμματισμού. Στο κείμενο του βιβλίου έχουν επισημανθεί αρκετές τέτοιες διαφορές. Σας οφείλουμε όμως μια προειδοποίση: πολύ σύντομα, η αγαπημένη σας γλώσσα προγραμματισμού θα είναι η Python! Μάθημα ιστορίας Πρωτοξεκίνησα με την Python όταν χρειάστηκα να γράψω ένα πρόγραμμα εγκατάστασης για ένα λογισμικό που είχα γράψει το οποίο ονομαζόταν 'Diamond' ώστε να κάνω εύκολη την εγκατάστασή του. Έπρεπε να διαλέξω μεταξύ της σύνδεσης της Python και της Perl με τη βιβλιοθήκη Qt. Έκανα μια έρευνα στο διαδίκτυο και βρήκα ένα άρθρο [1] στο οποίο ο Eric S. Raymond, ο διάσημος και αξιοσέβαστος αυτός hacker, εξηγούσε πώς η Python έγινε η αγαπημένη του γλώσσα προγραμματισμού. Βρήκα επίσης ότι η σύνδεση PyQt ήταν πιο ώριμη σε σύγκριση με την Perl-Qt. Έτσι, αποφάσισα ότι η Python ήταν η γλώσσα για μένα. Τότε άρχισα να ψάχνω για ένα καλό βιβλίο για την Python, και δε μπορούσα να βρω κάποιο που να με ικανοποιεί! Βρήκα μερικά βιβλία από την O'Reilly αλλά είτε ήταν πολύ ακριβά, είτε ήταν περισσότερο εγχειρίδια αναφοράς παρά οδηγοί. Έτσι, συμβιβάστηκα με την τεκμηρίωση που συνόδευε την Python. Ωστόσο, ήταν πολύ περιληπτική και σύντομη. Παρείχε μια πραγματικά καλή ιδέα για την Python αλλά δεν ήταν πλήρης. Τα κατάφερα με την τεκμηρίωση επειδή είχα προηγούμενη εμπειρία στον προγραμματισμό, αλλά δεν ήταν κατάλληλη για αρχάριους. Περίπου έξι μήνες μετά την πρώτη μου επαφή με την Python, εγκατέστησα την καινούρια (τότε) έκδοση της διανομής Red Hat 9.0 Linux και πειραματιζόμουν με το KWord. Ενθουσιάστηκα μαζί του, και ξαφνικά μου ήρθε η ιδέα να γράψω μερικά πράγματα για την Python. Ξεκίνησα γράφοντας μερικές σελίδες, αλλά σύντομα έφτασα τις 30 σελίδες. Τότε, αποφάσισα να πάρω τα πράγματα στα σοβαρά, και να φτιάξω κάτι χρήσιμο σε μορφή βιβλίου. Μετά από πολλές αναθεωρήσεις, είχε φτάσει σ' ένα σημείο όπου ήταν ένας χρήσιμος οδηγός για την εκμάθηση της γλώσσας Python. Θεώρησα ότι το βιβλίο αυτό θα ήταν η συνεισφορά μου, αφιερωμένη στην κοινότητα του ανοικτού κώδικα. Το βιβλίο αυτό ξεκίνησε ως οι προσωπικές μου σημειώσεις πάνω στην Python, και ακόμα έτσι το βλέπω κατά κάποιο τρόπο, παρόλο που κατέβαλα κάθε προσπάθεια να το κάνω πιο αποδεκτό από όλους. Συμπνέοντας με το πνεύμα του ανοικτού κώδικα, έλαβα πολλές εποικοδομητικές εισηγήσεις, κριτικές και αναδράσεις από ενθουσιώδεις αναγνώστες, οι οποίοι βοήθησαν πολύ στη βελτίωση αυτού του βιβλίου. Python el:Προοίμιο 4 Κατάσταση του βιβλίου Οι αλλαγές από την τελευταία μεγάλη αναθεώρηση του Μαρτίου του 2005 ήταν η ενημέρωση για την έκδοση Python 3.0 (που κυκλοφόρησε το Δεκέμβριο του 2008). Μια που η γλώσσα Python 3.0 δεν ήταν ακόμα τελειοποιημένη και δημοσιευμένη, και μια που το κείμενο μπορεί να βελτιώνεται συνεχώς, το βιβλίο αυτό υπόκειται σε συνεχείς αλλαγές. Ωστόσο, στο πνεύμα της φιλοσοφίας του ανοικτού κώδικα "εκδόσεις νωρίς, εκδόσεις συχνά", το ενημερωμένο βιβλίο δημοσιεύτηκε ήδη πριν την κυκλοφορία της Python 3000 και ανανεώνεται συνεχώς. Το βιβλίο χρειάζεται τη βοήθεια των αναγνωστών όπως εσείς για την υπόδειξη οποιονδήποτε σημείων του βιβλίου που δεν είναι ικανοποιητικά, κατανοητά ή απλά είναι λανθασμένα. Θα ήθελα να σας παρακαλέσω να γράψετε στον αρχικό συγγραφέα [2] ή στους αντίστοιχους μεταφραστές τα σχόλια και τις εισηγήσεις σας. Η διατήρηση της ισορροπίας σ' αυτό το βιβλίο μεταξύ των αναγκών ενός αρχάριου και της τάσης για "πληρότητα" των πληροφοριών είναι ένας ασταμάτητος αγώνας. Θα ήταν χρήσιμο αν οι αναγνώστες παρείχαν ανάδραση για το βάθος στο οποίο καλύπτονται τα θέματα σ' αυτό το βιβλίο. Επίσημος ιστότοπος Ο επίσημος ιστότοπος αυτού του βιβλίου είναι ο http:/ / www. swaroopch. com/ notes/ Python όπου μπορείτε να διαβάσετε ολόκληρο το βιβλίο στο διαδίκτυο, να κατεβάσετε τις τελευταίες εκδόσεις του, να αγοράσετε ένα τυπωμένο αντίγραφο [3] (στα αγγλικά), και επίσης να μου στείλετε ανάδραση. Άδεια 1. Το βιβλίο αυτό διατίθεται υπό την άδεια Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported [4]. • Αυτό σημαίνει ότι: • Μπορείτε να Μοιραστείτε π.χ. να αντιγράψετε, να διανείμετε και να μεταδώσετε αυτό το βιβλίο • Μπορείτε να Τροποποιήσετε π.χ. να προσαρμόσετε αυτό το βιβλίο • Υπό τους εξής όρους: • Αναφορά στον αρχικό δημιουργό. Πρέπει να αναφέρετε τον αρχικό δημιουργό του έργου με τον τρόπο που καθορίζει ο δημιουργός ή αυτός που εφαρμόζει την άδεια (αλλά όχι με τρόπο που υπαινίσσεται ότι εκείνοι εγκρίνουν τη δική σας χρήση αυτού του βιβλίου). • Όμοια διανομή. Αν αλλάξετε, μετατρέψετε ή επεκτείνετε αυτό το έργο, μπορείτε να διανείμετε το αποτέλεσμα μόνο υπό τους όρους της ίδιας ή μιας όμοιας/συμβατής άδειας. • Για οποιαδήποτε επανάχρηση ή διανομή, πρέπει να ξεκαθαρίσετε στους άλλους τους όρους της άδειας αυτού του βιβλίου. • Οποιοσδήποτε από τους πιο πάνω όρους μπορεί να αρθεί αν πάρετε έγκριση από τον ιδιοκτήτη των πνευματικών δικαιωμάτων. • Τίποτα σε αυτή την άδεια δε μειώνει ή περιορίζει τα ηθικά δικαιώματα του δημιουργού. 2. Η αναφορά στον αρχικό δημιουργό πρέπει να είναι εμφανής συνδέοντας στο http:/ / www. swaroopch. com/ notes/ Python και ξεκάθαρα υποδεικνύοντας ότι το αρχικό κείμενο μπορεί να ληφθεί από αυτήν την τοποθεσία. 3. Όλος ο κώδικας/σενάρια εντολών σ' αυτό το βιβλίο παρέχονται υπό την άδεια 3-clause BSD License [5] εκτός και αν σημειώνεται διαφορετικά. 4. Οι εθελοντικές συνεισφορές σ' αυτό το βιβλίο πρέπει να είναι κάτω από την ίδια άδεια και τα πνευματικά δικαιώματα να ανατίθεται στον αρχικό δημιουργό αυτού του βιβλίου. Python el:Προοίμιο 5 Ανάδραση Έχω καταβάλει πολλή προσπάθεια για να κάνω αυτό το βιβλίο όσο πιο ενδιαφέρον και όσο πιο ακριβές γίνεται. Ωστόσο, αν διαπιστώσετε ότι κάποιο υλικό είναι ανακριβές ή λανθασμένο, ή απλά χρειάζεται βελτίωση, τότε παρακαλώ να με πληροφορήσετε γι' αυτό, ώστε να κάνω τις απαραίτητες βελτιώσεις. Μπορείτε να επικοινωνήσετε μαζί μου μέσα από τη σελίδα χρήστη μου. Αγορά του βιβλίου Αν θέλετε να υποστηρίξετε τη συνεχιζόμενη ανάπτυξη αυτού του βιβλίου, παρακαλώ σκεφτείτε αν μπορείτε να αγοράσετε ένα τυπωμένο αντίγραφο [3] ή να κάνετε μια εισφορά. Τροφή για σκέψη Υπάρχουν δύο τρόποι για να κατασκευάσετε το σχεδιασμό ενός λογισμικού: ο ένας είναι να το κάνετε τόσο απλό ώστε προφανώς να μην υπάρχουν ελαττώματα, και ο άλλος είναι να το κάνετε τόσο πολύπλοκο ώστε να μην είναι προφανή τα ελαττώματα. -- C. A. R. Hoare Η επιτυχία στη ζωή δεν είναι τόσο θέμα ταλέντου