Καλωσορίσατε στη γλώσσα Python, στον κόσμο του προγραμματισμού!
| Revision: | 0.11 |
|---|---|
| Date: | 2009-07-12 |
| Author: | Savvas Radevic <vicedar@gmail.com> |
| Copyright: | © 2009 Savvas Radevic <vicedar@gmail.com>, © 2009 python-gr group <python-gr@googlegroups.com> |
| Credits: | |
| License: | GNU FDL 1.3 <http://www.gnu.org/licenses/fdl-1.3.txt> Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the file entitled "COPYING-DOCS.txt". |
| Source: | |
| PDF: |
Περιεχόμενα
Συντομογραφίες και αγγλικές λέξεις που θα συναντήσετε
- ΛΣ = Λειτουργικά συστήματα
- Modules = Αρθρώματα, Μονάδες Δραστηριότητας (χρησιμοποιούνται για να διευρύνουν τις δυνατότητες της γλώσσας Python)
- v (v3) = έκδοση (version 3)
Ο προγραμματισμός λύνει τα χέρια σ' ό,τι αφορά καθημερινές χρήσεις κάποιων εντολών είτε οποιασδήποτε ρουτίνας που θέλετε να διεξάγεται κάθε φορά που ανάβετε τον υπολογιστή. Αν και δεν ασχολούμαστε με την ιστορία των υπολογιστών στα μαθήματα που θα ακολουθήσουν, θα προσπαθήσουμε να σας δώσουμε μια μικρή εισαγωγή για το τι πρόκειται να ακολουθήσει.
Ο προγραμματισμός στη γλώσσα Python επιλέχθηκε επειδή ο κώδικας γραμμένος σε μια τέτοιου είδους γλώσσα μπορεί:
- Να χρησιμοποιηθεί σε διάφορα ΛΣ.
- Να διαβαστεί εύκολα και να τροποποιηθεί/αναπτυχθεί από άλλα άτομα, κάνοντας την ομαδική προσπάθεια πολύ πιο δυνατή και εφικτή.
- Να αναγνωριστούν εύκολα τυχόν λάθη στον κώδικα και να διορθωθούν.
- Να διευρυνθούν εύκολα οι δυνατότητες του προγράμματος με τα λεγόμενα modules (αρθρώματα) στο Python.
Η ομάδα των μεταφραστών έχει ήδη αρχίσει τη μετάφραση ενός θαυμάσιου βιβλίου, το "A Byte of Python" για την έκδοση 3 της γλώσσας. Η έκδοση 2 ακόμη υποστηρίζεται, αλλά έχοντας υπόψην ότι η έκδοση που θα χρησιμοποιείται στο εγγύς μέλλον είναι η 3, επιλέξαμε τη μετάφραση του βιβλίου για την έκδοση 3.
Για τα μαθήματα που θα διεξαχθούν, οι διαφορές που προσωπικά συνάντησα είναι μηδαμινές εώς αρκετά εύκολες για να κατανοηθούν, διαφορές στα ονόματα των modules για παράδειγμα, είτε στη χρήση μερικών εντολών στα modules που και πάλι είναι στους οδηγούς.
Το στέκι της ομάδας και η διεξαγωγή των μεταφράσεων βρίσκεται εδώ. Αν θέλετε να συμμετέχετε στη μετάφραση, κοιτάξτε τη λίστα με τα κείμενα που δεν έχουν μεταφραστεί στο http://www.swaroopch.com/notes/User:Ubuntu-gr.org.
Το βιβλίο μεταφράζεται στα Ελληνικά αυτή τη στιγμή και δεν είναι ολοκληρωμένο. Τα περιεχόμενα μπορείτε να τα βρείτε στην ιστοσελίδα Python_el:Περιεχόμενα.
Οι προϋποθέσεις για να πάρετε μέρος στα μαθήματα που θα ακολουθήσουν:
Καλή γνώση μαθηματικών.
Φυσικά δε ζητάμε να έχετε δοκτοράτο, αλλά να ξέρετε τουλάχιστον ύλη που καλύπτεται στην τρίτη τάξη Γυμνασίου. Ένας λόγος είναι επειδή ο προγραμματισμός και τα μαθηματικά είναι αρκετά συνδεδεμένα, κάπου και κάποτε θα χρειαστούν. Ένας δεύτερος λόγος είναι επειδή, στα μαθήματα που θα ακολουθήσουν, σε μερικές ερωτήσεις (μία ή δύο) μπορεί να χρειαστείτε λίγη περισσότερη σκέψη ή πονηράδα.
Υπομονή και επιμονή.
Αν δεν καταφέρατε κάτι την πρώτη φορά, ξαναδιαβάστε το βιβλίο, ξαναδιαβάστε την ερώτηση και προσπαθήστε κι άλλες φορές με διαφορετικό τρόπο. Παρόλο που θα είμαστε εδώ όλοι μας για να σας παρέχουμε βοήθεια, πειραματιστείτε, μην ρωτήσετε αμέσως!
Οι προϋποθέσεις για να ακολουθήσετε από μόνοι σας τη διεύρυνση των γνώσεων σας στη γλώσσα αυτή:
Καλή γνώση της Αγγλικής γλώσσας.
Πολλές από τις σελίδες διαφόρων οδηγών για Python, blogs ή άλλες ιστοσελίδες, είναι γραμμένοι στα Αγγλικά. H εισήγησή μου είναι να ακολουθήσετε πρώτα ένα καλό μάθημα Αγγλικών προτού συνεχίσετε "σε πιο βαθιά νερά". Για να καταλάβουν οι άλλοι το πρόβλημα σας, πρέπει να γνωρίζετε πώς να το διατυπώσετε σωστά.
Επίσης, μπαίνετε σε ομάδες στις οποίες συμμετέχουν εκατομμύρια άλλοι άνθρωποι ζητώντας ή και προσφέροντας βοήθεια. Ο μόνος τρόπος για να υπάρξει αλληλοβοήθεια και συνεννόηση ήταν η επικράτηση της αγγλικής γλώσσας.
Υπομονή και επιμονή.
Ευγένεια.
Κάθε προγραμματιστής είναι επίσης άνθρωπος και μπορεί να σας αντιμετωπίσει με τον δικό του ξεχωριστό τρόπο. Αυτό που πρέπει να κάνετε είναι πως ό,τι και να γίνει, μην θίγεστε και να φεύγετε, αλλά να κρατήσετε την ευγένεια σας και να αναδιατυπώσετε το ερώτημα που σας απασχολεί, στην ανάγκη αναφέρετε ότι δεν καταλάβατε σωστά τους οδηγούς και τα έγγραφα για Python.
Πάντα ΜΑ ΠΑΝΤΑ δίνετε τον κώδικα μαζί με το μήνυμα του σχετικού προβλήματος/σφάλματος που θέλετε να αναφέρετε (εκτός κι αν πιστεύετε ότι μπορείτε να εξηγήσετε 100% στον άλλο τι εννοείτε). Χρησιμοποιείτε γλώσσα ανοικτού κώδικα, ανοίξτε τον δικό σας κώδικα για να σας βοηθήσουν οι άλλοι. :)
Σημείωση: Εννοείται να σβήσετε ό,τι προσωπικούς κωδικούς και προσωπικά στοιχεία υπάρχουν στον κώδικα.
Πρώτ' απ' όλα, ο πιο πλήρης οδηγός με όλα τα έγγραφα για βοήθεια και με παραδείγματα για το πώς χρησιμοποιούνται οι διάφορες εντολές και τα modules βρίσκεται εδώ: http://docs.python.org
Σημείωση: Υπάρχει και μια ειδική ενότητα στο docs, ένας οδηγός για την γλώσσα Python: http://docs.python.org/tutorial/
Υπάρχουν διάφορες ιστοσελίδες όπου μπορείτε να ζητήσετε βοήθεια:
- Το φόρουμ του ubuntu-gr και τα ανάλογα θέματα: http://forum.ubuntu-gr.org :)
- http://stackoverflow.com
- http://www.daniweb.com
- http://python-forum.org
- http://forums.devshed.com
Υπάρχουν φυσικά και ιστοσελίδες στις οποίες μπορείτε να βρείτε έτοιμα παραδείγματα:
Έχει δημιουργηθεί καινούργια ενότητα στο φόρουμ για τα μαθήματα Python: http://forum.ubuntu-gr.org/viewforum.php?f=55
Τα μαθήματα θα είναι ασύγχρονα και θα διεξάγονται κάθε δύο εβδομάδες στο Φόρουμ και θα δημιουργούνται δύο θέματα (topic) ανά μάθημα. Η πρώτη εβδομάδα (πρώτο θέμα στο φόρουμ) θα είναι για τα μαθήματα και για την ύλη που θα πρέπει να καλυφθεί. Κατά τη δεύτερη εβδομάδα (δεύτερο θέμα στο φόρουμ) θα δοθούν ερωτήσεις οι οποίες θα πρέπει να απαντηθούν. Στο τέλος της δεύτερης βδομάδας θα δοθούν οι απαντήσεις και μετά θα προχωρούμε στην επόμενη ενότητα.
Μπορείτε να εναποθέσετε το ερώτημα σας και στις δύο εβδομάδες στο ανάλογο θέμα, οποιοσδήποτε θέλει μπορεί να βοηθήσει (αρκεί να είναι σίγουρος γι'αυτά που αναφέρει).
Η έκδοση στην οποία θα βασιστούν τα μαθήματα είναι η python v3. Οι λόγοι αναφέρονται στο Γιατί Python v3.
Σημείωση: Ως γνωστόν, υπάρχουν διάφοροι τρόποι για να λυθεί μια άσκηση. Αν "το παλικάρι ξέρει άλλο μονοπάτι", απαντάτε στο ανάλογο θέμα και... περιμένουμε να μας εκπλήξετε!!
Στον προγραμματισμό τα πράγματα αλλάζουν συχνά, οι διατυπώσεις και οι διάφορες εκδόσεις προγραμμάτων προσφέρουν ακόμη περισσότερα κάθε φορά. Για να τα εκμεταλλευτείτε πρέπει να έχετε την python 3 και ένα επίκαιρο λειτουργικό σύστημα της αρεσκείας σας.
Οι εκδόσεις python v2.5 και v2.6 είναι αυτές που χρησιμοποιούνται από τους πλείστους προγραμματιστές. Η python v3 δεν έχει ακόμη όλα τα αναγκαία εργαλεία για να λειτουργήσει όπως πρέπει. Για παράδειγμα, δεν υπάρχει ακόμη υποστήριξη για python-gtk.
Η python είναι μια από τις γλώσσες που διανέμονται στο ΛΣ Ubuntu. Όπως έχει προαναφερθεί, για τα μαθήματα που θα διεξαχθούν, θα βασιστούμε στην v3 και θα χρησιμοποιήσουμε το πακέτο για την τρέχων έκδοση 3.
Προσωπικά, συστήνω:
- Ubuntu 9.04 Jaunty Jackalope
- Fedora 11 (9 μέρες μόνο έμειναν, συνεπώς είναι αρκετά σταθερό για να χρησιμοποιηθεί) είτε Fedora 10
- OpenSUSE 11.1
- Debian testing (squeeze) (χρειάζεστε ΜΟΝΟ το CD1 για μια απλή εγκατάσταση)
- Windows XP και το πρόγραμμα εγκατάστασης για Python 3.0.1 ή/και Python 2.6
Κοιτάξτε εδώ: http://forum.ubuntu-gr.org/viewtopic.php?f=9&t=5314
Επίσης, υπάρχουν έτοιμα πακέτα σε αυτό το PPA: https://launchpad.net/~medigeek/+archive/ppa-python
Για να εγκαταστήσετε τη γλώσσα Python έκδοση 3 στο Ubuntu υπάρχουν οι εξής τρόποι:
Ανοίξτε το πρόγραμμα Terminal, Εφαρμογές → Βοηθήματα → Τερματικό (Applications → Accessories → Terminal), τρέξτε την εντολή
sudo apt-get -y install python3Σημείωση: Πληκτρολογείτε τον κωδικό σας όταν αυτός ζητηθεί (δε θα φανούν αστεράκια στη θέση των χαρακτήρων) και πιέζετε Enter.
Ακολουθήστε αυτό το σύνδεσμο: apt://python3
Υπάρχουν πακέτα εγκατάστασης στην επίσημη σελίδα της python: http://www.python.org/download/
Η εκτέλεση είναι πολύ απλή, ανοίξτε το πρόγραμμα Terminal, Εφαρμογές → Βοηθήματα → Τερματικό (Applications → Accessories → Terminal), τρέξτε την εντολή:
python3
Καθώς είστε στην κονσόλα της python3, τρέξτε την εντολή:
print("Γεια σου, κόσμε!")Αν όλα πήγαν καλά θα δείτε το ακόλουθο αποτέλεσμα:
>>> print("Γεια σου, κόσμε!") Γεια σου, κόσμε! >>>Σημείωση: Η φράση "Γεια σου, κόσμε!", η οποία στα αγγλικά είναι "Hello world!", χρησιμοποιείται συχνά σε οδηγούς και βιβλία για εισαγωγή σε κάποια γλώσσα προγραμματισμού.
Για να βγείτε από την κονσόλα python3, πιέζετε CTRL+D είτε εκτελείτε:
exit()
Σε πρόγραμμα κειμενογράφου της αρεσκείας σας, προσθέστε τις ακόλουθες γραμμές:
#!/usr/bin/python3 # -*- coding: utf8 -*- print("Γεια σου, κόσμε!")Σημείωση: Η δεύτερη γραμμή "# -*- coding: utf8 -*-" είναι αναγκαία σε περίπτωση που στον κώδικα έχετε χαρακτήρες που δεν ανήκουν στο σύνολο χαρακτήρων ASCII (λατινικοί χαρακτήρες). Στην περίπτωσή μας, οι ελληνικοί χαρακτήρες δεν ανήκουν στο σύνολο αυτό, και με αυτό τον τρόπο αναφέρουμε στην python ποια κωδικοποίηση κειμένου χρησιμοποιούμε. Σε ΛΣ Unix/Linux (Ubuntu, Debian, OpenSUSE κτλ) η προεπιλεγμένη κωδικοποίηση σε κείμενα είναι UTF-8.
Φυλάξτε το ως test.py στο φάκελο Τοποθεσίες > Προσωπικός φάκελος (Places → Home, /home/myuser/test.py). Ακολούθως ανοίξτε το τερματικό και εκτελέστε:
python3 test.py
Αν όλα πήγαν καλά θα δείτε το ακόλουθο μήνυμα:
user@ubuntu$ python3 test.py Γεια σου, κόσμε!
Αρχίζουμε λοιπόν το 0 ("μηδενικό") μάθημα.
Γιατί 0;
Μιας και οι περισσότερες λίστες στον προγραμματισμό αρχίζουν με 0 (0-based indexing), έτσι και η αρχική μας ενότητα έχει καθιερωθεί ως 0 ("μηδενική").
Η ύλη για διάβασμα είναι τα ακόλουθα κεφάλαια:
Σημείωση: Ο αριθμός εδώ αντιστοιχεί στον αριθμό του κεφαλαίου από τα περιεχόμενα του βιβλίου.