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

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

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

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

Δημοσίευσηαπό clepto » 27 Σεπ 2011, 20:54

pmav ωραία ιδέα αλλά είμαι σκράπας με τις λίστες και λοιπά... :oops:
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

Δημοσίευσηαπό pmav99 » 27 Σεπ 2011, 22:43

Αμα δε λερωθείς πως θα μάθεις? :P

Για ότι θες, κάνε συγκεκριμένες ερωτήσεις, και ανέβασε και τον κώδικα σου κάπου. Έτσι είναι πιο δύσκολο να γίνεις κατανοητός.
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

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

Δημοσίευσηαπό clepto » 29 Σεπ 2011, 13:59

ποιο προτείνεις να κάνω;
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 » 29 Σεπ 2011, 14:33

clepto έγραψε:ποιο προτείνεις να κάνω;

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

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

Δημοσίευσηαπό clepto » 29 Σεπ 2011, 14:38

εντάξει...όταν βρω χρόνο θα κοιτάξω πως να υλοποιήσω όλα αυτά!
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 » 29 Σεπ 2011, 14:48

clepto έγραψε:εντάξει...όταν βρω χρόνο θα κοιτάξω πως να υλοποιήσω όλα αυτά!

Είναι εύκολο, απλά διάβασε για τις λίστες και για το pickle.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό medigeek » 29 Σεπ 2011, 15:22

Ορίστε ένα παράδειγμα με dictionaries και pickle που δουλεύει:
Κώδικας: Επιλογή όλων
#!/usr/bin/python
import os.path
import pprint # "Pretty print"
try:
import cPickle as pickle
except ImportError:
import pickle

pickle_file = "cache.db"
pickle_dict = dict()

# If pickle file exists
if os.path.exists(pickle_file):
#Use pickle file
print("Found pickle file, loading dictionary")
with open(pickle_file, "r") as f:
pickle_dict = pickle.load(f)
else:
print("Did not find pickle file, creating default dictionary")
pickle_dict = {
"my1stkey": "my1stvalue",
"my2ndkey": "my2ndvalue",
}

print("Current dictionary")
pprint.pprint(pickle_dict)

print("Adding to dictionary")
pickle_dict["newkey"] = "newvalue"
pickle_dict["otherkey"] = "othervalue"
pprint.pprint(pickle_dict)

print("Remove from otherkey from dictionary")
pickle_dict.pop("otherkey")
# Same as: del pickle_dict["otherkey"]
# newkey is still there!
pprint.pprint(pickle_dict)

# When done processing, write back to file through pickle
print("Will save this dictionary:")
pprint.pprint(pickle_dict)
with open(pickle_file, "w") as f:
pickle.dump(pickle_dict, f)


Την πρώτη φορά που το τρέχεις:
- θα δημιουργήσει ένα default dictionary
- θα προσθέσει τα keys "otherkey" και "newkey"
- θα αφαιρέσει το "otherkey"
- θα αποθηκεύσει το dictionary στο αρχείο cache.db

Τη δεύτερη φορά θα βρει το αποθηκευμένο αρχείο pickle και θα το χρησιμοποιήσει (Πρόσεξε ότι τώρα υπάρχει το "newkey").
Κύπριος; Κόπιασε στο 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

Δημοσίευσηαπό pmav99 » 29 Σεπ 2011, 17:31

Αυτό που λέει ο medigeek έλεγα και εγώ. Και με lists γίνεται φυσικά, αλλά για το συγκεκριμένο πρόβλημα τα dicts είναι νομίζω καλύτερα.
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

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

Δημοσίευσηαπό clepto » 29 Σεπ 2011, 17:47

εντάξει θα τα κοιτάξω μετά (έχω 6-8 μαθηματικά, δεν παλεύεται :( )
αλλά να ρωτήσω κάτι, ποιος ο ρόλος του otherkey; και γιατί διαγράφεται;
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

Δημοσίευσηαπό pmav99 » 29 Σεπ 2011, 18:51

Για λόγους επίδειξης το έβαλε. Απλά πως προσθέτεις και πως αφαιρείς ένα entry στο dict.
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

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

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