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

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

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

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

Δημοσίευσηαπό Ilias95 » 28 Ιαν 2012, 21:26

Yeap. That's it, thank you!
Μ' αρέσει που κοίταξα κιόλας στην τεκμηρίωση. :oops: :P

sokoban4ever έγραψε:όχι η __main__ χρειάστηκε για να τρέξει..

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

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

Δημοσίευσηαπό sokoban4ever » 29 Ιαν 2012, 07:51

Ωραία χαίρομαι . :)

Βασικά στο pep328 λέει ότι :
άμα η __name__ του module σου έχει όνομα που δεν προδίδει το όνομα του πακέτου (πχ να την έχεις θέσει σε __main__
(__main__ όνομα που δεν δίνει καμία πληροφορία...) τότε το βλέπει σαν πρωτεύον module ανεξάρτητα που βρίσκεται στους φακέλους
http://www.python.org/dev/peps/pep-0328 ... s-and-name
και για την __main__ :
http://docs.python.org/library/__main__.html

Ρώτησα αν έχεις κάνει την __name__ σε δηλαδή κάτι άλλο από ότι χρειαζόταν (όχι εσύ αλλά η python ...)
έτσι λοιπόν και εγώ
προληπτικά :roll: και νομίζωντας ότι εσένα έδινε σφάλμα import... (ενώ είχε πρόβλημα με το unittest.main() )
έδωσα ρητα την name στο παράδειγμα μην τύχει και δεν σου δουλεύει και λύναμε λάθος προβλήματα άσκοπα...
σε εμένα δεν εδίνε σφάλμα.
anyway ολα καλα :thumbup:
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

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

Δημοσίευσηαπό clepto » 30 Ιαν 2012, 15:46

θελω να ελεγξω αν υπαρχει ενα ονομα σε μια λιστα, πως θα το κανω χρησιμοποιω αυτο
Κώδικας: Επιλογή όλων
def folder_exist(self):
self.folders_names = []
name = str(self.createLineEdit.text().toUtf8())
f = open(efolders, 'rb')
try:
self.folders_names = pickle.load(f)
except (EOFError, IOError):
pass
f.close()
for i in self.folders_names:
if name in self.folders_names:
return True
else:
return False

αλλα δεν φαινεται να δουλευει
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

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

Δημοσίευσηαπό Ilias95 » 30 Ιαν 2012, 15:51

Θες απλά να ελέγξεις αν υπάρχει το name μέσα στην λίστα self.folders_names;
Δηλαδή ο κώδικας που μας ενδιαφέρει είναι αυτός;
Κώδικας: Επιλογή όλων
for i in self.folders_names:
if name in self.folders_names:
return True
else:
return False

Αν ναι, τότε η λύση είναι:
Κώδικας: Επιλογή όλων
return name in self.folders_names
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό clepto » 30 Ιαν 2012, 16:04

θελω να μου επιστρεφει true/false αλλα μου επιστρεφει συνεχεια true ακομα και αν δεν ειναι μεσα την λιστα
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

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

Δημοσίευσηαπό Ilias95 » 30 Ιαν 2012, 16:05

Το "name in self.folders_names" θα επιστρέψει True αν είναι και False αν δεν είναι.
Είσαι σίγουρος ότι δεν είναι; Πρόσθεσε μερικές print για να ελέγξεις. Πχ εκτύπωσε την λίστα πριν γίνει ο έλεγχος για να δεις αν όντως είναι μέσα.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό clepto » 30 Ιαν 2012, 16:07

ειμαι απολυτως σιγουρος γιατι δεν θυμαμαι να εβαλα στην λιστα το "asdklja" :P
θα δοκιμασω αυτο που ειπες...
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

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

Δημοσίευσηαπό clepto » 30 Ιαν 2012, 16:18

δεν πιάνει...
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

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

Δημοσίευσηαπό Ilias95 » 30 Ιαν 2012, 16:22

Τι δεν πιάνει; Βοήθησε λίγο. Παίρνεις σφάλμα; Δεν παίρνεις το επιθυμητό αποτέλεσμα;

Άλλαξε την συνάρτηση σε:
Κώδικας: Επιλογή όλων
def folder_exist(self):
self.folders_names = []
name = str(self.createLineEdit.text().toUtf8())
f = open(efolders, 'rb')
try:
self.folders_names = pickle.load(f)
except (EOFError, IOError):
pass
f.close()
print name
print self.folders_names
print name in self.folders_names
return name in self.folders_names

Τρέξε τον κώδικα και παρέθεσε την έξοδο. Αν επιστρέφει σφάλμα παρέθεσε το traceback.

Edit: Και κάτι άλλο. Γιατί δεν χρησιμοποιείς το with statement για να ανοίξεις το αρχείο;
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό clepto » 30 Ιαν 2012, 16:27

δε τυπωνει τιποτα..συνεχιζει να μου πεταει το διαλογο που εχω βαλει οταν ειναι true...
ακομα και με ονοματα οπως asdajhkla
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

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

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