topografoi.com

Συζητήσεις => Προγραμματισμός => αγρο-Πληροφορική και Τεχνολογία => python => Topic started by: vagvaf on 26 Δεκ 2007, 12:19

Title: Python Wiki Tutorial
Post by: vagvaf on 26 Δεκ 2007, 12:19
Χαιρετώ σας!

Πρόσφατα ανακάλυψα την Python!
Είναι μαι πανεύκολη γλώσσα προγραμματισμού που έχει ιδιαίτερες εφαρμογές πάνω σε GIS.

Η απλότητα της με ενθουσίασε τόσο πολύ που άρχισα να μαθαίνω σίγα σίγα από το online documentation της και έπειτα αγόρασα και βιβλία!

Σκέφτηκα λοιπόν ότι ίσως εκεί έξω υπάρχουν αρκετοί από σας που σας αρέσει μεν ο προγραμματισμός άλλα βρίσκετeε την C++ πολύ δύσκολη ή too much για σας όπως εγώ!
Για αυτό δημιούργησα ένα wiki που κάνει μια εισαγωγή στην Python και εξηγεί 5 βασικά πράγματα, που με τα οποία όμως θα μπορέσετε να λύσετε αρκετά προβλήματα της σχολής μας.

Ορίστε το url : http://wiki.topografoi.com/doku.php/python

Ελπίζω να σας βοηθήσει!

πάρτε και ένα κομιξάκι που δείχνει την απλότητα της Python!

(http://imgs.xkcd.com/comics/python.png)
Title: Απ: Python Wiki Tutorial
Post by: mitsaras88 on 28 Νοε 2009, 23:38
καλησπέρα.
ένα ζήτημα με απλές πράξεις στη python.θέλω την πράξη g=(π^2)*l/T
και γράφω

Python 2.6.4 (r264:75706, Nov  2 2009, 14:38:03)
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> t=raw_input('dose periodo T:')
dose periodo T:3.00798
>>> l=2.2452
>>> g=math.pow(math.pi,2)*l/t
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'float' and 'str'
>>>

αν μπορεί κάποιος να μου πει τι δεν κάνω καλά τον κερνάω μπύρα (κι ας μην έχει αναπτύξει καθόλου ανοιχτό λογισμικό...)
Title: Απ: Python Wiki Tutorial
Post by: chiossif on 29 Νοε 2009, 01:57
Δεν ξέρω python αλλά υποπτεύομαι ότι το t είναι κείμενο και όχι αριθμός.
Μάλλον θα έπρεπε να γράψεις

>>>t=float(raw_input('dose periodo T:'))

Ελπίζω να είναι αυτό.
Title: Απ: Python Wiki Tutorial
Post by: mitsaras88 on 29 Νοε 2009, 20:02
ευχαριστώ.
αυτό δούλεψε
Title: Απ: Python Wiki Tutorial
Post by: vagvaf on 02 Δεκ 2009, 22:48
mitsaras88, καλό είναι να συνηθίσεις από τώρα να γράφεις με συναρτήσεις. To wiki βρίσκεται υπό ανανέωση, αλλά μέχρι να παραδοθεί στην χρήση σου γράφω λίγα πραματα εδώ.

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

Code: [Select]
def freefall(t, g=9.81):
    "Ypologizei to ypsos ptwsis enos antikeimenou se eley8eri ptwsi, dedomenou tou xronou pou ekane gia na pesei"
    S=0.5*g*pow(t,2)
    print S

Στην γραμμή 1 ορίζω την συνάρτηση freefall(), η οποία παίρνει ως μεταβλητές το t (χρόνος) και το g (επιταχυνση της βαρύτητας). Επειδή στα απλά προβλήματα το g έχει συνήθως την τιμή 9,81 μπορείς να το αγνοήσεις και να δηλώσεις μόνο τον χρόνο, και η Python θα δωσει την τιμή 9,81. Αν όμως θέλεις να κάνεις ένα πείραμα στο φεγγάρι, μπορεις να ορίσεις δικια σου τιμή.

Η 2η γραμμή ονομάζεται docstring και περιγράφει με λίγα λόγια την λειτουργία της συνάρτησης. Η χρήση της είναι προεραιτική, αλλά θα σου συνιστούσα να την χρησιμοποιείς πάντα, ώστε όταν κάποιος τρίτος διαβάζει τον κωδικά σου, να καταλαβαίνει από την αρχή τι περίπου κάνει.

Η 3η γραμμή, είναι ένας απλός υπολογισμός. Το pow(t,2) σημαίνει t στο τετράγωνο.

Μόλις εκτλέσεις το πρόγραμμα, δεν θα συμβεί τίποτα. Για να το χρισιμοποιήσεις πρέπει να γράψεις την συνάρτηση και να δώσεις μια ή δυο μεταβλητές, πχ

Code: [Select]
>>> freefall(4)
78.480000000000004
Το οποίο σου επιστρέφει το ύψος στο οποίο βρισκόταν ένα αντικείμενο, αν έκανε 4 secs να φτάσει το έδαφος (με g=9,81), και

Code: [Select]
>>> freefall(4,7)
56.0
Το οποίο σου επιστρέφει το ύψος στο οποίο βρισκόταν ένα αντικείμενο, αν έκανε 4 secs να φτάσει το έδαφος σε κάποιο πλανήτη με g=7 (στη Μεση Γή?)

Θυμάσαι που σου είπα πόσο χρήσιμο είναι το docstring? Μπορείς να το δεις ακόμα και στο runtime, γράφοντας:
Code: [Select]
>>> print freefall.__doc__
Ypologizei to ypsos ptwsis enos antikeimenou se eley8eri ptwsi,dedomenou tou xronou pou ekane gia na pesei
Title: Απ: Python Wiki Tutorial
Post by: stardust on 04 Δεκ 2009, 12:47
Υπάρχει κάτι που η python να μην έχει συνάρτηση γι' αυτό??? :o
Title: Απ: Python Wiki Tutorial
Post by: vagvaf on 04 Δεκ 2009, 14:17
την συγκεκριμενη την έγραψα εγω :P
Title: Wiki Update
Post by: vagvaf on 04 Δεκ 2009, 15:39
to Wiki της Python (http://wiki.topografoi.com/doku.php/python) αναβαθμίστηκε και προστέθηκαν σε αυτό οι λίστες και οι συναρτήσεις που είναι η καρδιά της Python!. Stay tunned :)
Title: Απ: Python Wiki Tutorial
Post by: mitsaras88 on 06 Δεκ 2009, 18:16
ευχαριστούμε πολύ vagvaf για τον κόπο σου στο γουίκι!!
αποκτάει βάσεις για να γίνει πολύ καλός οδηγός...
Title: Απ: Python Wiki Tutorial
Post by: Alexander on 16 Δεκ 2009, 18:49
Μέσα σε όλα κι εγώ λοιπόν έψαξα κι εγώ και βρήκα έναν άλλο editor για την Python του οποίου το interface θα θυμίσει σε πολλούς Matlab. Ο editor αυτός ονομάζεται spyder  και βρίσκεται εδώ: http://code.google.com/p/spyderlib/downloads/list (http://code.google.com/p/spyderlib/downloads/list). Ομολογώ ότι τις δυνατότητές του δεν τις γνωρίζω πλήρως (τώρα μαθαίνω κι εγώ) αλλά ελπίζω ότι ψάχνοντας και με πειράματα θα εξοικειωθώ γρήγορα.

Προτείνω να κατεβάσετε το τελευταίο αρχείο ονόματι spyder-1.0.1.tar.gz. Αφού το κατεβάσετε πρέπει να το αποσυμπιέσετε σε κάποιο φάκελο του Home και η εγκατάστασή του γίνεται πολύ απλά με χρήση της εντολής sudo python setup.py install σε ένα τερματικό.
Σημειώνεται ότι για να δουλέψει η εντολή πρέπει να έχετε πάει πρώτα στο αντίστοιχο directory από το τερματικό.

Για να τρέξει πληκτρολογούμε spyder σε ένα τερματικό και ανοίγει το παράθυρο που φαίνεται παρακάτω:
(http://ultraxs.com/image-84BE_4B290CFE.jpg) (http://ultraxs.com/share-84BE_4B290CFE.html)

Καλό και λέφτερο κώδικα σε όλους!!!
Title: Απ: Python Wiki Tutorial
Post by: vagvaf on 16 Δεκ 2009, 18:57
Nice! φαίνεται ωραίος παρόλλο που δεν έχω δει ποτέ την matlab
Title: Απ: Python Wiki Tutorial
Post by: vagvaf on 16 Δεκ 2009, 20:16
Να συμπληρώσω ότ εγώ χρειάστηκε να εγκαταστήσω το python-qscintilla2

Code: [Select]
sudo apt-get install python-qscintilla2
Επίσης, αν δεν έχετε εγκαταστήσει ποτέ καμια KDE εφαρμογή, μάλλον θα χρειαστεί να εγκαταστήσετε και το KDE

Code: [Select]
sudo apt-get install kubuntu-desktop
Τέλος, για τους Gnome-άδες, μπορείτε να προσθέσετε το spyder στο μενου "Applications":

Title: Απ: Python Wiki Tutorial
Post by: cps on 18 Δεκ 2009, 14:23
Για όσους ενδιφέρονται να δουλέψουν σε Python αυτή η διανομή http://www.pythonxy.com/foreword.php προσφέρει κάποια ενδιαφέροντα χαρακτηριστικά.
Περιλαμβάνει πολλές βιβλιοθήκες και εργαλεία που τα εγκαθιστάς εύκολα και γρήγορα. Είναι ότι πρέπει για αρχάριους χρήστες και για όσους θέλουν να εξελίξουν προγράμματα python σε windows.
Δείτε το.
(Γίνεται mirror από το ftp του πολυτεχνείου και κατεβαίνει πολύ γρήγορα)
Title: Απ: Python Wiki Tutorial
Post by: chiossif on 18 Δεκ 2009, 21:45
Για όσους ενδιφέρονται να δουλέψουν σε Python αυτή η διανομή http://www.pythonxy.com/foreword.php προσφέρει κάποια ενδιαφέροντα χαρακτηριστικά.
Περιλαμβάνει πολλές βιβλιοθήκες και εργαλεία που τα εγκαθιστάς εύκολα και γρήγορα. Είναι ότι πρέπει για αρχάριους χρήστες και για όσους θέλουν να εξελίξουν προγράμματα python σε windows.
Δείτε το.
(Γίνεται mirror από το ftp του πολυτεχνείου και κατεβαίνει πολύ γρήγορα)

cps,
καλώς μας ήρθες.

Πρόκειται για μία σχεδόν πλήρη ομαδοποίηση της python και εργαλείων της για επιστημονικούς σκοπούς.
Είναι υπό GPLv3 (το είδα και ηρέμησα διότι με τρόμαξε που δεν υπήρχε στην πρώτη ιστοσελίδα καμία αναφορά σε άδεια χρήσης) και η επίσημη σελίδα είναι:
http://code.google.com/p/pythonxy/

Θα την δοκιμάσω και θα πω περισσότερα... Φυσικά όποιος το κάνει πρώτος ανεβάζει σε νέο θέμα με τίτλο Python(x,y) ένα σύντομο αλλά ενδεικτικό wiki (Εγχειρίδιο χρήσης στα ελληνικά :-) ) για το περιβάλλον και ο διαχειριστής είμαι βέβαιος θα το "περιποιηθεί"...

Για μια ακόμη φορά θα γράψω ότι η Python είναι το καλύτερο εργαλείο προγραμματισμού για τοπογράφους.

Ας συνεχίσουμε έτσι να έχουμε και κάτι να κάνουμε στις διακοπές...

Καλά Χριστούγεννα σε όλους.
Title: Απ: Python Wiki Tutorial
Post by: cps on 21 Δεκ 2009, 19:57
Quote
Πρόκειται για μία σχεδόν πλήρη ομαδοποίηση της python και εργαλείων της για επιστημονικούς σκοπούς.
Είναι υπό GPLv3 (το είδα και ηρέμησα διότι με τρόμαξε που δεν υπήρχε στην πρώτη ιστοσελίδα καμία αναφορά σε άδεια χρήσης)
Το GPLv3 αναφέρεται στο πακεταρισμένο προϊόν που είναι ουσιαστικά ένα buildout κάποιων πολύ διαδεδομένων βιβλιοθηκών. Η καθεμιά από αυτές διατηρεί το αρχικό της license, οπότε δεν υπάρχει κανένα θέμα σε αυτό το σημείο.
 
Quote
Θα την δοκιμάσω και θα πω περισσότερα... Φυσικά όποιος το κάνει πρώτος ανεβάζει σε νέο θέμα με τίτλο Python(x,y) ένα σύντομο αλλά ενδεικτικό wiki (Εγχειρίδιο χρήσης στα ελληνικά :-) ) για το περιβάλλον και ο διαχειριστής είμαι βέβαιος θα το "περιποιηθεί"...
Το έχω δουλέψει πολύ σε μηχανήματα με windows όπου μου έλυσε πραγματικά τα χέρια, πριν αποκτήσω περισσότερη εμπειρία σχετική με το cheese shop και τα eggs-setuptools-distutils-buildout. Τον τελευταίο χρόνο έχω σταματήσει ουσιαστικά να το χρησιμοποιώ καθώς εμφανίζει μια σχετική υστέρηση στην ενημέρωση των εκδόσεων που περιλαμβάνει. Ωστόσο είναι ιδανικό για αυτούς που θέλουν κάτι εύκολα και γρήγορα, χωρίς πονοκεφάλους. Σχετικά με το wiki που προτείνεις το θέμα της εγκατάστασης είναι αρκετά απλό, επιλέγεις ποιες βιβλιοθήκες θες να εγκαταστήσεις και ο installer αναλαμβάνει τα υπόλοιπα. Το χρήσιμο θα ήταν να γίνει μια σύντομη περιγραφή του τί περιέχει και πού είναι χρήσιμο. Βέβαια στο σάιτ του πακέτου υπάρχουν αρκετές πληροφορίες για αυτά, ωστόσο εάν υπάρχει ενδιαφέρον θα μπορούσα να κωδικοποιήσω μερικά στοιχεία και να αναδείξω τις βιβλιοθήκες που είναι πιο χρήσιμες.

Title: Απ: Python Wiki Tutorial
Post by: mitsaras88 on 25 Δεκ 2009, 20:48
Χρόνια πολλά σε όλους!!
έχω να ρωτήσω το εξής απλό: πώς μπορώ να αποθηκεύσω ένα πρόγραμμα που έχω γράψει και έπειτα να το τρέξω όποτε και όπου θέλω?
Title: Απ: Python Wiki Tutorial
Post by: chiossif on 25 Δεκ 2009, 21:47
Merry Christmas to all.

Εγκατέστησε IDLE ( sudo apt-get install idle ) τρέχτο (idle σε κονσόλα) και θα είσαι Άρχοντας...

Χρόνια Πολλά.
Title: Απ: Python Wiki Tutorial
Post by: mitsaras88 on 18 Φεβ 2010, 20:05
καλησπέρα σε όλους.

χρησιμοποιώ τον IDLE  για να γράφω προγραμματάκια σε python, αλλά από μόνο του τα αποθηκεύει χύμα στο /home/mitsaras..
Πώς γίνεται να φτιάξω ένα φάκελο σε τοποθεσία της αρεσκείας μου, όπου να αποθηκεύω όλα τα προγράμματά μου και να τα τρέχω κιόλας στο τέρμιναλ από εκεί;;; ???
Title: Απ: Python Wiki Tutorial
Post by: vagvaf on 22 Φεβ 2010, 09:20
καλησπέρα σε όλους.

χρησιμοποιώ τον IDLE  για να γράφω προγραμματάκια σε python, αλλά από μόνο του τα αποθηκεύει χύμα στο /home/mitsaras..
Πώς γίνεται να φτιάξω ένα φάκελο σε τοποθεσία της αρεσκείας μου, όπου να αποθηκεύω όλα τα προγράμματά μου και να τα τρέχω κιόλας στο τέρμιναλ από εκεί;;; ???

δεν είμαι σίγουρος αν καταλαβα καλά αλλά συνήθως:

1. φτιάχνεις ένα φάκελο σε τοποθεσία της αρεσκίας σου και
2. σώζεις τον κώδικα με "save" στην τοποθέσία που θές και από εκεί και έπειτα κάθε φορά που κάνεις save πηγαίνει εκεί
Title: Απ: Python Wiki Tutorial
Post by: mitsaras88 on 23 Φεβ 2010, 11:00
βασικά αυτό που ήθελα είναι να αποθηκεύω όπου θέλω τα προγράμματά μου  (απλό)
                                    +
να μπορώ να τα τρέχω στο τερματικό με εντολή του τύπου $python program_name.py για παράδειγμα.