diff --git a/fib_gen/fib.pyc b/fib_gen/fib.pyc new file mode 100644 index 0000000..72a5bb0 Binary files /dev/null and b/fib_gen/fib.pyc differ diff --git a/fib_iter/fib.pyc b/fib_iter/fib.pyc new file mode 100644 index 0000000..3a2681b Binary files /dev/null and b/fib_iter/fib.pyc differ diff --git a/fib_mod/fib.pyc b/fib_mod/fib.pyc new file mode 100644 index 0000000..71aa543 Binary files /dev/null and b/fib_mod/fib.pyc differ diff --git a/iter_bug/fib.py b/iter_bug/fib.py index 59a39a4..7122b65 100644 --- a/iter_bug/fib.py +++ b/iter_bug/fib.py @@ -2,15 +2,17 @@ # Python's iterator functionality. Here, 'fib' is a class that # obeys the iterator protocol. + class fib(object): def __init__(self): self.last_1 = 1 self.last_2 = 1 + def __iter__(self): return self def next(self): next_fib = self.last_1 + self.last_2 - self.last_1, self.last2 = self.last_2, next_fib + self.last_1, self.last_2 = self.last_2, next_fib return next_fib diff --git a/iter_bug/fib.pyc b/iter_bug/fib.pyc new file mode 100644 index 0000000..1601828 Binary files /dev/null and b/iter_bug/fib.pyc differ diff --git a/iter_bug/test.py b/iter_bug/test.py index db32b46..82a177d 100644 --- a/iter_bug/test.py +++ b/iter_bug/test.py @@ -10,8 +10,8 @@ def test2(): i = iter(f) i.next() assert i.next() == 3 - -def test2(): + +def test3(): f = fib.fib() i = iter(f) i.next() diff --git a/series_gen/example.py b/series_gen/example.py index 62b7751..76b1ade 100644 --- a/series_gen/example.py +++ b/series_gen/example.py @@ -5,3 +5,5 @@ if i > 2: break + +# sets i to series.n and breaks when n equals 3 diff --git a/series_iter/series.pyc b/series_iter/series.pyc new file mode 100644 index 0000000..c83ed75 Binary files /dev/null and b/series_iter/series.pyc differ diff --git a/series_mod/series.py b/series_mod/series.py index 5da6adc..607ce2c 100644 --- a/series_mod/series.py +++ b/series_mod/series.py @@ -9,5 +9,9 @@ def add_one(): # additional questions to address: # - what does 'global' do, above? +# Makes it global accessable. + # - what naming limitations are there on series.py? Could we name it +# no global constant symble. Can't start with numbers. + # series_mod.py or series-mod.py, and still have it work as a module? diff --git a/series_mod/series.pyc b/series_mod/series.pyc new file mode 100644 index 0000000..f8cf527 Binary files /dev/null and b/series_mod/series.pyc differ diff --git a/sieve_gen/sieve.py b/sieve_gen/sieve.py new file mode 100644 index 0000000..51f3683 --- /dev/null +++ b/sieve_gen/sieve.py @@ -0,0 +1,17 @@ +# This is the file for generator + +def sieve_g(): + list = [2] + size = 2 + + + while 1: + flag = 0 + size += 1 + for i in list: + if size % i == 0: + flag = 1 + if flag != 1: + list.append(size) + yield list + diff --git a/sieve_gen/sieve.pyc b/sieve_gen/sieve.pyc new file mode 100644 index 0000000..b7bc2b2 Binary files /dev/null and b/sieve_gen/sieve.pyc differ diff --git a/sieve_gen/test1.py b/sieve_gen/test1.py new file mode 100644 index 0000000..c4be1ca --- /dev/null +++ b/sieve_gen/test1.py @@ -0,0 +1,13 @@ +import sieve + +print "Test for getting a 10-element sequence" +print "" + +for x,y in zip(range(10-1), sieve.sieve_g()): + list = y + +print list + + +#test for getting 10 elements list + diff --git a/sieve_gen/test2.py b/sieve_gen/test2.py new file mode 100644 index 0000000..83877ee --- /dev/null +++ b/sieve_gen/test2.py @@ -0,0 +1,17 @@ +import sieve + +print "Test if expect number shows in right spot" +print "" + +for x, y in zip(range(10 - 1), sieve.sieve_g()): + list = y + +assert list[1] == 3 +print "assert list[1] == 3: Success" + +assert list[2] == 5 +print "assert list[2] == 5: Success" + + + +#testing if the sequence contain expected number diff --git a/sieve_gen/test3.py b/sieve_gen/test3.py new file mode 100644 index 0000000..cc0272d --- /dev/null +++ b/sieve_gen/test3.py @@ -0,0 +1,17 @@ +import sieve + +print "Test if 233 is a prime" +print "" + +for x, y in zip(range(233), sieve.sieve_g()): + list = y + +for i in list: + if i == 233: + print "233 is prime" + Flag = 1 + break +if Flag != 1 : + print "Damn! 233 is not prime!" + +#Test if one specific number is prime diff --git a/sieve_iter/sieve.py b/sieve_iter/sieve.py new file mode 100644 index 0000000..df0b964 --- /dev/null +++ b/sieve_iter/sieve.py @@ -0,0 +1,23 @@ +#This is the .py file part + +class sieve_i(object): + def __init__(self): + self.list = [2] + self.size = 1 + + def __iter__(self): + return self + + def next(self): + apd = self.list[-1] + while 1: + if self._is_prime(self.list,apd): + self.list.append(apd) + self.size+=1 + return self.list + apd +=1 + def _is_prime(self, primes, n): + for i in primes: + if n % i == 0: + return False + return True diff --git a/sieve_iter/sieve.pyc b/sieve_iter/sieve.pyc new file mode 100644 index 0000000..002510d Binary files /dev/null and b/sieve_iter/sieve.pyc differ diff --git a/sieve_iter/test1.py b/sieve_iter/test1.py new file mode 100644 index 0000000..07f2c8e --- /dev/null +++ b/sieve_iter/test1.py @@ -0,0 +1,10 @@ +import sieve + + +def test1(): + f = sieve.sieve_i() + while f.size < 10: + f.next() + print f.list + +test1() diff --git a/sieve_iter/test2.py b/sieve_iter/test2.py new file mode 100644 index 0000000..3ff00f7 --- /dev/null +++ b/sieve_iter/test2.py @@ -0,0 +1,16 @@ +import sieve + + +def test2(): + f = sieve.sieve_i() + while f.size < 10: + f.next() + list = f.list + print "Test if expect number shows in sequence" + print "" + assert list[1] == 3 + print "assert list[1] == 3: Seccess" + assert list[2] == 5 + print "assert list[2] == 5: Seccess" + +test2() diff --git a/sieve_iter/test3.py b/sieve_iter/test3.py new file mode 100644 index 0000000..52e5b12 --- /dev/null +++ b/sieve_iter/test3.py @@ -0,0 +1,19 @@ +import sieve + + +def test3(n): + print "Test is a number is prime. Here we use 233" + print "" + f = sieve.sieve_i() + while f.size < n: + f.next() + list = f.list + for i in list: + if i == n: + print n,"is prime" + flag = 1 + break + if flag !=1: + print "Damn!", n, "is not prime!" + +test3(233) diff --git a/sieve_mod/example.py b/sieve_mod/example.py new file mode 100644 index 0000000..9d5650c --- /dev/null +++ b/sieve_mod/example.py @@ -0,0 +1,7 @@ +import sieve + +print sieve.sieve(10) + + + +# function shows the first n numbers in the sequence diff --git a/sieve_mod/sieve.py b/sieve_mod/sieve.py new file mode 100644 index 0000000..6d8f019 --- /dev/null +++ b/sieve_mod/sieve.py @@ -0,0 +1,24 @@ + +#This is a .py file of module style to implement Eratosthenes' Sieve + +_primelist = [2] + +def _is_prime(primes, n): + for i in primes: + if n % i == 0: + return False + return True + +def sieve(n): + global _primelist + start = _primelist[-1] +1 + size = 1 + while size < n : + if _is_prime(_primelist, start): + _primelist.append(start) + size+=1 + start += 1 + return _primelist + + + diff --git a/sieve_mod/sieve.pyc b/sieve_mod/sieve.pyc new file mode 100644 index 0000000..00bf759 Binary files /dev/null and b/sieve_mod/sieve.pyc differ