Σελίδα 2 από 2

Re: Άσκηση σε Python

ΔημοσίευσηΔημοσιεύτηκε: 09 Ιαν 2013, 00:22
από Knoxd
Υπάρχει κάποιος τρόπος που να μπορώ να διαλέξω πόσα threads θα δημιουργήσω;

Re: Άσκηση σε Python

ΔημοσίευσηΔημοσιεύτηκε: 10 Ιαν 2013, 01:27
από Knoxd
Μετά απο αρκετό ψάξιμο έγραψα τον ακόλουθο κώδικα για τον οποίο δεν είμαι καθόλου σίγουρος ότι κάνει τη δουλειά σωστά...
Ο κώδικας:
import time
import threading
def isprime(n):
if n == 2:
return 1
if n%2 ==0:
return 0
max = n**0.5 + 1
i=3
while i <= max:
if n % i == 0:
return 0
i+=2
return 1
primenubers = []
print "Please give the maximum number"
endnum = input()
start = time.time()
class ThreadClass(threading.Thread):
def myfunc():
for i in range(endnum):
if isprime(i) == 1:
primenubers.append(i)

for i in range(2):
t = ThreadClass()
t.start()
print primenubers
print "Elapsed Time: %s" % (time.time() - start)

Επίσης δεν μου εκτυπώνει τους αριθμούς..(για αυτό το λόγο έχω και αμφιβολίες για το εαν δουλεύει σωστά...)
Οποιαδήποτε γνώμη-άποψη για βελτίωση ή για το πως μπορεί να λειτουργήσει σωστά θα ήταν ευπρόσδεκτη.

Re: Άσκηση σε Python

ΔημοσίευσηΔημοσιεύτηκε: 10 Ιαν 2013, 02:46
από simosx
Knoxd έγραψε:Επίσης δεν μου εκτυπώνει τους αριθμούς..(για αυτό το λόγο έχω και αμφιβολίες για το εαν δουλεύει σωστά...)
Οποιαδήποτε γνώμη-άποψη για βελτίωση ή για το πως μπορεί να λειτουργήσει σωστά θα ήταν ευπρόσδεκτη.


Εδώ βρίσκεσαι στο κρίσιμο σημείο για να μάθεις προγραμματισμό. Το ζήτημα είναι να ξεκινήσεις από ένα στάδιο όπου ο κώδικας λειτουργεί και κάνει κάτι,
π.χ. το thread απλά εκτυπώνει κάποιο μήνυμα. Μετά πας παρακάτω και το βάζεις να βγάζει ένα αποτέλεσμα μόνο, και συνεχίζεις.
Αν πω κάτι σε αυτό το σημείο όπου μαθαίνεις να προγραμματίζεις, τότε θα είναι επιβλαβές. Προχωράς καλά, έχεις μπροστά σου τις εντολές που χρειάζονται, και μπορείς να βρεις παρόμοια προγράμματα που χρησιμοποιούν threads, και μπορείς να τα βγάλεις πέρα. Προσπάθησε λίγο ακόμα.

Re: Άσκηση σε Python

ΔημοσίευσηΔημοσιεύτηκε: 04 Φεβ 2013, 20:59
από lucinos
ειδικά στην Python τα κενά μετράνε κιόλας...

Κώδικας: Επιλογή όλων
import time
import threading
def isprime(n):
    if n == 2: 
        return 1
    if n%2 ==0:
        return 0
    max = n**0.5 + 1
    i=3
    while i <= max:
        if n % i == 0:
            return 0
        i+=2
    return 1
primenubers = []
print "Please give the maximum number"
endnum = input()
start = time.time()
class ThreadClass(threading.Thread):
    def myfunc():
        for i in range(endnum):
            if isprime(i) == 1:
                primenubers.append(i)
       
for i in range(2):
    t = ThreadClass()
    t.start()
print primenubers
print "Elapsed Time: %s" % (time.time() - start)