Τα πάντα για την Python

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την Python

Δημοσίευσηαπό migf1 » 30 Ιουν 2011, 22:47

;)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 04 Ιούλ 2011, 20:25

Έχετε υπόψιν σας "καλά" προγράμματα σε python;
Όχι απλά παραδείγματα κώδικα, αλλά μεγάλα, ολοκληρωμένα προγράμματα.
Κατά προτίμηση σε python3, αλλά και σε python2 δεν με πειράζει.
Το επίπεδο δυσκολίας και το μέγεθος δεν με ενδιαφέρει (ίσα ίσα, όσο μεγαλύτερα, τόσο το καλύτερο!).
Ευχαριστώ!
Τελευταία επεξεργασία από Ilias95 και 05 Ιούλ 2011, 01:12, έχει επεξεργασθεί 1 φορά/ες συνολικά
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό pmav99 » 04 Ιούλ 2011, 23:26

τι θα πει καλα?
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 05 Ιούλ 2011, 00:47

pmav99 έγραψε:τι θα πει καλα?


Το "καλά" έπρεπε να το βάλω σε εισαγωγικά.
Δηλαδή ότι κατά τη γνώμη σας ο κώδικας είναι σωστά δομημένος και ευανάγνωστος, και ότι επίσης θα κερδίσει κάποιος απ' την ανάγνωση ενός τέτοιου προγράμματος.
Έχω την εντύπωση ότι υπάρχουν και "κακοί" (δηλαδή όχι οι σωστότεροι) τρόποι για να προγραμματίζεις και δεν θα ήθελα να διαβάσω ένα πρόγραμμα το οποίο θα μου "περάσει"
κακές προγραμματιστικές συνήθειες.
Ελπίζω ότι έγινα κατανοητός.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό medigeek » 05 Ιούλ 2011, 00:58

Ilias95 έγραψε:Έχετε υπόψιν σας καλά προγράμματα σε python;

Δεν ξέρω αν είναι «καλό», αλλά ορίστε ένα δικό μου: viewtopic.php?f=6&t=15460
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό medigeek » 05 Ιούλ 2011, 01:04

Ilias95 έγραψε:Έχω την εντύπωση ότι υπάρχουν και "κακοί" (δηλαδή όχι οι σωστότεροι) τρόποι για να προγραμματίζεις και δεν θα ήθελα να διαβάσω ένα πρόγραμμα το οποίο θα μου "περάσει" κακές προγραμματιστικές συνήθειες.

PEP 8 :) http://www.python.org/dev/peps/pep-0008/
Και.. πριν λίγες μέρες ανακαλυψα αυτό το άρθρο: http://wiki.python.org/moin/PythonSpeed/PerformanceTips
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 05 Ιούλ 2011, 01:11

Ευχαριστώ medigeek.
Είχα ήδη υπόψιν μου το πρόγραμμα σου και θα προσπαθήσω να το διαβάσω τις επόμενες μέρες.
Οτιδήποτε άλλο ευπρόσδεκτο!
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό pmav99 » 05 Ιούλ 2011, 02:58

Μάλιστα. Για να παρεις καλύτερες απαντήσεις, ίσως είναι καλύτερα να γίνεις λίγο πιο συγκεκριμένος. Η python είναι εύκολη για να μάθεις τη σύνταξη της, αλλά ασχολείται με σχεδόν τα πάντα. Τι σε ενδιαφέρει λοιπόν? GUI? Οbject Oriented? WEB? Άλλο? Αν πχ σε ενδιαφέρει να εντρυφήσεις και σε functional προγραμματισμό και δε θες να πας σε lisp-οειδή γλώσσα, ρίξε ένα μάτι και στις functional λύσεις του Projet Euler

Πέρα από αυτά, νομίζω ότι διαβάζοντας κώδικα γίνεσαι καλύτερος προγραμματιστής, είτε ο κώδικας τους είναι καλός είτε κακός. Πχ διάβασε κώδικα σε Fortran γραμμένο το 70 (spaghetti code) και θα καταλάβεις γιατί η Python τα σπάει :P.

Καλή πηγή για snippets νομίζω είναι το cookbook της Activestate και το Python Cookbook Ετοιμάζεται η τρίτη έκδοση - στη δεύτερη κάποια πράγματα είναι outdated (γίνονται πχ με with statement κτλ)

Ίσως μια από τις καλύτερες πηγές κώδικα για Python είναι η ίδια η Python. Εννοώ τα κομμάτια της γλώσσας που έχουν υλοποιηθεί σε Python και όχι σε C. Θα μπορούσες να δεις δηλαδή τον ίδιο τον κώδικα της. Κατά προτίμηση ένα module που σε ενδιαφέρει/γνωρίζεις και να δεις την υλοποιηση του. Οι core Python devs σε γενικές γραμμές το έχουν :P Προσοχή μόνο γιατί υπάρχουν πράγματα που μπορεί να είναι trivial για να τα καταλάβεις και άλλα όχι και τόσο βατά.

Κάτι άλλο που πιθανότατα θα σε βοηθήσει αν έχεις χρόνο και κέφι να μάθεις τη γλώσσα είναι να βοηθήσεις στο development της Python! Ρίξε ένα μάτι εδώ και γράψου στη λίστα αν θες. Είναι πολύ φιλική. Το πιο δύσκολο κομμάτι είναι μάλλον το ψυχολογικό handicap. Aν ασχοληθείς θα δεις και καλό γραμμένο κώδικα, και πως λειτουργεί ένα multi-developed project. Ακόμη θα υποχρεωθείς να μάθεις καλό Mercurial αλλά και να γράψεις ποιοτικό κώδικα (για να γίνει αποδεκτό το patch σου).

Αν σου φαίνεται πολύ hardcore, θα μπορούσες να κάνεις κάτι αντίστοιχο για μια εφαρμογή που χρησιμοποιείς. Πχ τον editor σου (1 2)?

Πάντως μη διαβάζεις μόνο. Γράφε και κώδικα. Προσωπικά, μη έχοντας επίσημο προγραμματιστικό background (σπουδές δηλαδή), αυτό που με ζορίζει περισσότερο σε οποιοδήποτε σχετικά σύνθετο πρόγραμμα είναι το πως να το στήσω. Inheritance ή composition? ΜixIn classes? Γενικότερα δηλαδή τις προγραμματιστικές τεχνικές. Για αυτά φυσικά υπάρχουν και βιβλία, αλλά νομίζω ότι άμα δε δοκιμάσεις στην πράξη την μία ή την άλλη προσέγγιση δε μπορείς εύκολα να καταλάβεις τα πλην και τα συν της. Βρες κάτι που σε ενδιαφέρει λοιπόν και υλοποίησε το. Γενικά σε όλα τα πράγματα, για να γίνεις καλύτερος χρειάζεται να έχεις αντικείμενο.
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 05 Ιούλ 2011, 14:59

Κατ' αρχάς σ' ευχαριστώ για την αναλυτική σου απάντηση.

Προς το παρόν θα με ενδιέφερε οτιδήποτε σχετικό με την γλώσσα, ώστε να μπορέσω να ανακαλύψω τις δυνατότητες της.
Σχετικά με το cookbook που λες έχω ήδη διαβάσει μερικά, αλλά είναι snippets όπως είπες και όχι ολόκληρα προγράμματα.
Απ' όσο έχω ακούσει όμως η ανάγνωση τους είναι "must" για κάθε χρήστη python (υπάρχει και για την python3 Python Cookbook).
Αυτή τη στιγμή δεν μπορώ να ασχοληθώ με το development της Python που λες, αλλά είναι μια πολύ καλή ιδέα για αργότερα!
Όσον αφορά το τελευταίο έχω γράψει διάφορα μικροπρογράμματα, αλλά επειδή τα περισσότερα παραδείγματα κώδικα που έχω δει είναι σχετικά με αυτό που μαθαίνω εκείνη τη στιγμή, με ενδιαφέρει να διαβάσω την δουλειά άλλων προγραμματιστών, ώστε να μάθω πως αυτοί σκέφτονται σχετικά με τα διάφορα προγραμματιστικά προβλήματα, αλλά και για να έχω μοντέλα τα οποία θα προσπαθώ να "φτάσω".
Έννοείται όμως ότι γράφω και κώδικα, αλλιώς (έχω την εντύπωση) δεν πας πουθενά...

Τέλος αν είναι εύκολο, που ακριβώς βρίσκεται ο κώδικας της ίδιας της python; :D
Βρήκα κάτι στο /usr/lib/python3.2 αλλά δεν είμαι σίγουρος αν είναι όλος ο κώδικας.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό pmav99 » 05 Ιούλ 2011, 15:36

έγραψε:Προς το παρόν θα με ενδιέφερε οτιδήποτε σχετικό με την γλώσσα, ώστε να μπορέσω να ανακαλύψω τις δυνατότητες της.

Εκτός από το να γράψεις λειτουργικό σύστημα, μπορείς να κάνεις σχεδόν τα πάντα, αρκετές φορές με τον ευκολότερο τρόπο :P

Στο /usr/lib/python#.#/ θα βρεις την core python + τα modules που έχεις εγκαταστήσει (συνήθως στο site-packages).

Από εκεί και πέρα αυτό είναι το mercurial repo της python. http://hg.python.org/ Αν θες μπορείς να κατεβάσεις από εκεί της dev εκδόσεις, αλλά αν δεν ασχοληθείς εσύ με το development δεν έχει και ιδιαίτερο νόημα.
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι

cron