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

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

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

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

Δημοσίευσηαπό pmav99 » 21 Νοέμ 2011, 17:01

κάντο

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

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

Δημοσίευσηαπό clepto » 21 Νοέμ 2011, 17:05

να αντικαστησω ολο αυτο
Κώδικας: Επιλογή όλων
self.resultLabel.setText(result)
με str(result) ;
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 » 21 Νοέμ 2011, 17:09

Κώδικας: Επιλογή όλων
self.resultLabel.setText(result)
self.resultLabel.setText(str(result))
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

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

Δημοσίευσηαπό clepto » 21 Νοέμ 2011, 17:11

δουλεύει μια χαρά!
ευχαριστώ!
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 » 26 Νοέμ 2011, 15:35

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

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

Δημοσίευσηαπό kamar » 26 Νοέμ 2011, 18:02

Ilias95 έγραψε:Υπάρχει κάποιο έτοιμο module με το οποίο μπορούμε να υπολογίσουμε το χρονικό διάστημα που θα χρειαστεί για την εκτέλεση μιας διεργασίας;


Δες αυτό: http://docs.python.org/library/timeit.html
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 14.04 trusty 3.13.0-91-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD A6-5400K APU with Radeon HD Graphics ‖ RAM 3347 MiB ‖ ASUS F2A55-M LK2 PLUS
4 Advanced Micro Devices, Inc. [AMD/ATI] Trinity [Radeon HD 7540D] [1002:9991] {radeon}
5 eth0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 09)
Άβαταρ μέλους
kamar
punkTUX
punkTUX
 
Δημοσιεύσεις: 166
Εγγραφή: 10 Μάιος 2008, 20:24
Τοποθεσία: Χανιά
Εκτύπωση

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

Δημοσίευσηαπό Ilias95 » 26 Νοέμ 2011, 18:31

kamar έγραψε:
Ilias95 έγραψε:Υπάρχει κάποιο έτοιμο module με το οποίο μπορούμε να υπολογίσουμε το χρονικό διάστημα που θα χρειαστεί για την εκτέλεση μιας διεργασίας;


Δες αυτό: http://docs.python.org/library/timeit.html

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

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

Δημοσίευσηαπό medigeek » 26 Νοέμ 2011, 19:33

Εμένα πάντως με βοήθησε να τεστάρω το χρόνο για το forum-signature:
https://github.com/medigeek/ubuntu-gr_f ... re.py#L790
Κώδικας: Επιλογή όλων
def timeit():
f = 'core(osgrubber().returnall()).returnall()'
import cProfile
cProfile.run(f)
import timeit
t = timeit.Timer(f, 'from __main__ import osgrubber, core')
print(t.timeit(number=100))
Κύπριος; Κόπιασε στο 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 » 26 Νοέμ 2011, 22:17

Ηλία, αν αυτό που θέλεις να κάνεις είναι να υπολογίσεις ένα progression rate ή κάτι παρόμοιο, νομίζω ότι δεν υπάρχει γενικός τρόπος για να το πετύχεις. Αν είναι μετρήσιμο αυτό που κάνεις (πχ αντιγράφεις αρχεία) οκ, το κάνεις έμμεσα. Για μια τυχαία διεργασία όμως ο χρόνος εκτέλεσης εξαρτάται από πολλά πράγματα όπως CPU Load, μνήμη κτλ. Δε νομίζω να γίνεται να το υπολογίσεις από πριν. Δεν είναι θέμα γλώσσας, σε οποιαδήποτε γλώσσα ισχύει αυτό.

Αν αυτό που θέλεις να κάνεις είναι απλά να βελτιστοποιήσεις την απόδοση του κώδικα σου, τότε το timeit είναι και βολικό και εύχρηστο. Σε συνδυασμό με ipython ίσως μάλιστα να είναι ακόμα πιο βολικό και πιο εύχρηστο.

Αν αυτό που θέλεις να κάνεις είναι να βρεις τα bottlenecks του προγράμματος σου, τότε η διαδικασία ονομάζεται Profiling και όπως είπαν και οι προλαλήσαντες τα απαραίτητα modules υπάρχουν στην standard library (profile στην Python 3 και cProfile στην Python 2). Για να έχεις γραφικό output μπορείς να χρησιμοποιήσεις το runsnakerun. Να ξέρεις ότι τα modules αυτά σου υποδεικνύουν ποια συνάρτηση σου είναι αργή. Αν χρειάζεσαι πιο λεπτομερή ανάλυση μπορείς να χρησιμοποιήσεις to line_profiler. Παραδείγματα χρήσης των παραπάνω θα βρεις σε αυτό του tutorial του Ian Ozvald (1 και 2)
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

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

Δημοσίευσηαπό Ilias95 » 26 Νοέμ 2011, 23:21

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

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

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