Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added fib_gen/fib.pyc
Binary file not shown.
Binary file added fib_iter/fib.pyc
Binary file not shown.
Binary file added fib_mod/fib.pyc
Binary file not shown.
4 changes: 3 additions & 1 deletion iter_bug/fib.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Binary file added iter_bug/fib.pyc
Binary file not shown.
4 changes: 2 additions & 2 deletions iter_bug/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
2 changes: 2 additions & 0 deletions series_gen/example.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@

if i > 2:
break

# sets i to series.n and breaks when n equals 3
Binary file added series_iter/series.pyc
Binary file not shown.
4 changes: 4 additions & 0 deletions series_mod/series.py
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Binary file added series_mod/series.pyc
Binary file not shown.
17 changes: 17 additions & 0 deletions sieve_gen/sieve.py
Original file line number Diff line number Diff line change
@@ -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

Binary file added sieve_gen/sieve.pyc
Binary file not shown.
13 changes: 13 additions & 0 deletions sieve_gen/test1.py
Original file line number Diff line number Diff line change
@@ -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

17 changes: 17 additions & 0 deletions sieve_gen/test2.py
Original file line number Diff line number Diff line change
@@ -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
17 changes: 17 additions & 0 deletions sieve_gen/test3.py
Original file line number Diff line number Diff line change
@@ -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
23 changes: 23 additions & 0 deletions sieve_iter/sieve.py
Original file line number Diff line number Diff line change
@@ -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
Binary file added sieve_iter/sieve.pyc
Binary file not shown.
10 changes: 10 additions & 0 deletions sieve_iter/test1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import sieve


def test1():
f = sieve.sieve_i()
while f.size < 10:
f.next()
print f.list

test1()
16 changes: 16 additions & 0 deletions sieve_iter/test2.py
Original file line number Diff line number Diff line change
@@ -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()
19 changes: 19 additions & 0 deletions sieve_iter/test3.py
Original file line number Diff line number Diff line change
@@ -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)
7 changes: 7 additions & 0 deletions sieve_mod/example.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import sieve

print sieve.sieve(10)



# function shows the first n numbers in the sequence
24 changes: 24 additions & 0 deletions sieve_mod/sieve.py
Original file line number Diff line number Diff line change
@@ -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



Binary file added sieve_mod/sieve.pyc
Binary file not shown.