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

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

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

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

Δημοσίευσηαπό pmav99 » 13 Αύγ 2011, 16:18

Σχετικά με τα traits και το py2exe τελικά μάλλον γίνεται
http://www.geophysique.be/2010/10/29/pa ... ng-py2exe/
(δεν το δοκίμασα)
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

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

Δημοσίευσηαπό learne/hack » 23 Αύγ 2011, 13:44

Ευχαριστώ πάρα πάρα πολύ παιδιά για την εξήγηση του if...in range ():
και εγώ εκεί να σας πω την αλήθεια κόλλησα και ήμουν έτοιμος να ρωτήσω ευχαριστώ πάρα πάρα πολύ.... με βοηθήσατε φοβερά... να είστε καλά..!! :-) :thumbup: :clap:
Spoiler: show
1 Linux: Μέτριος ┃ Προγραμματισμός: Αρχάριος ┃ Αγγλικά: Αρχάριος
2 Ubuntu 11.10 oneiric 64bit (el_GR.UTF-8), Ubuntu 3.0.0-14-generic, Windows 7
3 Intel Core2 Quad CPU Q9400 2.66GHz ‖ RAM 3963 MiB ‖ ASRock G31M-S
4 nVidia G92 [GeForce 9800 GT] [10de:0614] (rev a2)
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02)
learne/hack
babeTUX
babeTUX
 
Δημοσιεύσεις: 25
Εγγραφή: 09 Οκτ 2009, 16:40
Εκτύπωση

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

Δημοσίευσηαπό Ilias95 » 29 Αύγ 2011, 20:28

Στην python2 έχουμε την δυνατότητα να χειριστούμε εξαιρέσεις ως εξής:

Κώδικας: Επιλογή όλων
class kati(Exception): pass

if True:
try:
raise kati, "Ok"
except kati, e:
print e

Και η έξοδος θα ήταν Ok...

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

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

Δημοσίευσηαπό pmav99 » 29 Αύγ 2011, 20:47

Στην python 2 μήπως αυτό που ήθελες να γράψεις είναι αυτό?
Κώδικας: Επιλογή όλων
class kati(Exception): pass

if True:
try:
raise kati, "Ok"
except kati as e:
print e


Το αντίστοιχο στην python3 θα ήταν κάτι τέτοιο
Κώδικας: Επιλογή όλων
class kati(Exception): pass

if True:
try:
raise kati("Ok")
except kati as e:
print(e)


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

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

Δημοσίευσηαπό Ilias95 » 29 Αύγ 2011, 20:57

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

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

Δημοσίευσηαπό medigeek » 29 Αύγ 2011, 21:57

Ilias95 έγραψε:
Αυτό που έγραψα ισχύει στην python2.

Ίσχυε για python 2.5 ή παλιότερες εκδόσεις. Στην pyhon3 αλλαξαν το κόμμα με το " as".
Στην έκδοση 2.6 ή νεότερες (2.7), κράτησαν το κόμμα αλλά προτείνουν τον νέο τρόπο με το " as".

2.7: http://docs.python.org/reference/compou ... -statement
2.5: http://docs.python.org/release/2.5/ref/try.html
Κύπριος; Κόπιασε στο 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 » 03 Σεπ 2011, 15:11

Ερώτηση σχετικά με PyQt για όποιον γνωρίζει:

Γίνετε σε ένα QListWidgetItem να κρατήσω επιπρόσθετες πληροφορίες εκτός απ' το αρχικό string;
Δηλαδή να αποθηκεύσω και κάποια μεταβλητή στο item, την οποία να μπορώ να καλέσω αργότερα.
Υπάρχουν αρκετές μέθοδοι σχετικά με τα Items, αλλά δυστυχώς δεν βλέπω κάτι σχετικό. :(
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό pmav99 » 03 Σεπ 2011, 19:59

Τι ακριβώς θέλεις να κάνεις? Τι πληροφορία θέλεις να κρατήσεις? Είσαι σίγουρος ότι πρέπει να ανήκει στο QListWidgetItem? Αν ναι γιατί δεν κάνεις μία subclass?

Μήπως είναι πιο εύκολο να φτιάξεις ένα dictionary?
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

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

Δημοσίευσηαπό Ilias95 » 03 Σεπ 2011, 20:13

pmav99 έγραψε:Τι ακριβώς θέλεις να κάνεις? Τι πληροφορία θέλεις να κρατήσεις? Είσαι σίγουρος ότι πρέπει να ανήκει στο QListWidgetItem? Αν ναι γιατί δεν κάνεις μία subclass?
Μήπως είναι πιο εύκολο να φτιάξεις ένα dictionary?

Λοιπόν είναι σχετικά με την γραφική έκδοση του Addres Book.
Στα αριστερά θα υπάρχει μια QListWidget στην οποία θα προβάλλονται οι επαφές (Όνομα και Επίθετο μόνο). Όταν ο χρήστης επιλέξει ένα από τα items της λίστας θέλω τα στοιχεία της επιλεγμένης επαφής να εμφανίζονται δεξιά (σε κάποιο Widget που ακόμα δεν αποφάσισα και δεν έχει σημασία). Το θέμα είναι όμως ότι όταν προσθέτεις ένα αντικείμενο στη λίστα δίνεις μόνο το string το οποίο θες να εμφανίζετε (δηλ. το όνομα και το επίθετο της επαφής στην προκειμένη περίπτωση). Πως όμως θα καταλαβαίνω σε ποια επαφή αντιστοιχίζεται το κάθε item της λίστας, ώστε να εμφανίζω τα στοιχεία της;
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό pmav99 » 04 Σεπ 2011, 03:57

Δεν είμαι σίγουρος ότι καταλαβαίνω ακριβώς τι έχεις στο μυαλό σου.

Έχεις μια βάση δεδομένων με εγγραφές. Συνδέεσαι σε αυτή και διαβάζεις τα ονοματεπώνυμα τα οποία και εμφανίζεις στο QListWidget. Όταν ο χρήστης διαλέγει μία επαφή εκπέμπεται αυτό το signal. Το κάνεις bind λοιπόν σε μία μέθοδο η οποία κάνει αυτά που θέλεις/χρειάζεσαι (πχ ανάγνωση του ονοματεπώνυμου, query στη λίστα για τα υπόλοιπα στοιχεία και εμφάνιση στο δεξιά widget). Αν δεν κάνω λάθος, το ονοματεπώνυμο δεν το διαβάζεις άμεσα. Αυτό που διαβάζεις από το QListWidget είναι μία instance της QListWidgetItem. Το ονοματεπώνυμο το διαβάζεις μέσα από τo Item.

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

έγραψε:Πως όμως θα καταλαβαίνω σε ποια επαφή αντιστοιχίζεται το κάθε item της λίστας, ώστε να εμφανίζω τα στοιχεία της;

Δεν τα έχω δοκιμάσει τα παρακάτω. Απλά μία ιδέα.

Ένας τρόπος είναι να κάνεις subclass το QListWidgetItem ώστε να του δίνεις ακόμα ένα attribute το οποίο θα αντιστοιχεί στο unique key της λίστας σου.
Κώδικας: Επιλογή όλων

def MyQListWidgetItem(QListWidgetItem):
def __init__(self, text, parent, unique_key):
super(MyQListWidgetItem, self).__init__(text, parent)

self.unique_key = unique_key

Κώδικας: Επιλογή όλων

list_widget = QListWidget( args)

for item in DataBase:
name = item.name
surname = item.surname
unique_key = item.unique_key
list_widget.addItem(MyQListWidgetItem( name + surname, parent, unique_key)

Όταν λοιπόν θα διαλέγει ο χρήστης ένα Item του QListWidget, θα διαβάζεις το currentItem που είναι ένα MyQListWidgetItem το οποίο έχει σαν attribute το unique_key.

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

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

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

cron