From 3d804f2a27db4b825a3d2fab5be1bf14511f12be Mon Sep 17 00:00:00 2001 From: Qijun Chen Date: Wed, 23 Jan 2013 19:10:06 -0500 Subject: [PATCH 1/3] fixed the bug --- iter_bug/fib.py | 4 +++- iter_bug/test.py | 4 ++-- series_gen/example.py | 2 ++ series_mod/series.py | 4 ++++ 4 files changed, 11 insertions(+), 3 deletions(-) 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/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_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? From 0d82d5b521a87ca18220e55c07de8cdefdbafe14 Mon Sep 17 00:00:00 2001 From: Qijun Chen Date: Thu, 24 Jan 2013 14:43:59 -0500 Subject: [PATCH 2/3] fixed the bug --- fib_gen/fib.pyc | Bin 0 -> 361 bytes fib_iter/fib.pyc | Bin 0 -> 878 bytes fib_mod/fib.pyc | Bin 0 -> 359 bytes iter_bug/fib.pyc | Bin 0 -> 878 bytes series_iter/series.pyc | Bin 0 -> 848 bytes series_mod/series.pyc | Bin 0 -> 322 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 fib_gen/fib.pyc create mode 100644 fib_iter/fib.pyc create mode 100644 fib_mod/fib.pyc create mode 100644 iter_bug/fib.pyc create mode 100644 series_iter/series.pyc create mode 100644 series_mod/series.pyc diff --git a/fib_gen/fib.pyc b/fib_gen/fib.pyc new file mode 100644 index 0000000000000000000000000000000000000000..72a5bb03637a2d3e7737433366802fbeab013641 GIT binary patch literal 361 zcmb78%ZkE45Uid^Sj6CQk9*BwH7H&L5x+oW1rK`(8b^(2e9Qz~NpAZy`v?A)c;D_s z@$5iXS9jNRwR82Vf0x@R!u=8F0f+Gz=D;uT&4e)a6?Y1q!{kwzw&)0XiG-UY(j^+Y%P}!V{!92;LA?yGHj;ChOH-U+c)ke`eegJJS)ZAfcazyQlpPS zw9?5TUZ+81bf?>DB&-f4gU*g^O zCbd0F4a}Rj+4*=gN%YmIe|&!5WU_oB_)C~S01QQ($jHdh$h*j!$ZZdYigaVf1;QvF zWN`Wz;1$dt0+7jIVP>zgEYXXY&No#_%PJYOXcgEs%r^n(_#$FgL@RY;#&mK%#Yp1i}VuEAJ#FSC#4q&Z8+26lriXy^tDq`Ezs literal 0 HcmV?d00001 diff --git a/fib_mod/fib.pyc b/fib_mod/fib.pyc new file mode 100644 index 0000000000000000000000000000000000000000..71aa5431cb24002918770e9746d8a2c61f28d3d5 GIT binary patch literal 359 zcmbVH%L>9U5Zt6vMDQ%)5A>iG#fu;!co(TRFQt!&6|Ik?prSW_#y{}C#JjUm@NUS? zPT0vz;ykOB`{OlD=(_~^2&L{$Kr{{a^nKlkv3uHN4r*F${6M9Xu?Gnd*Eb2H^KZutAn2`Rld(wg`a5E z>vvjtv5D2;>_Z=Jwkh}a?qo_|ACA%tlhYKx+$3SPYgp@xbVK}7UkWP7rgrAfD%(5BkmfQp{%-+J^ezM0ha zEHyB1-)3j#y`3cd+HEa9zi(4oJ|WgCggXR`h%C`q(MZvP=!58PfK5RCi1R$dI7?D2 z@+jan!W{un$;rf(gJ9WW5OO)csgbU_q+G=jAZ`$@4S?bsky#Px)Q>o)mvOdG-vFBo zoj2VzJ&pL>*8t8=#t~K$a2>F?bao!654L#9@-j}HJv;AqigKFR`D>hcJ2y#rALCjl zk1u{36~<&m=8f3`cifd!Q>|RHmbm5$osG%~wwenyXK9}O+Jmsae@%@h#QI{Qp_=t(*jxWcvn02vm!yrQ OwSNF<38Ym3 literal 0 HcmV?d00001 diff --git a/series_iter/series.pyc b/series_iter/series.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c83ed75e864db7078bf2f03f82ccf1184265819a GIT binary patch literal 848 zcmb_a!AiqG5S>kGvBl!egI6!PXb=SvL`3gJHYa;o+GL9w7kKR&;2b6Gwy&MTPPhbu&^$XH3C~x&ql;GS6P+B{?Nb`GJJ(iO?&7D0xKR&GL*~l(lQrwl+nbM=C!AB3zej9zp zlvU}CX#+dbidqRIYY<3IsLO(ae#6X5&4$ehfjVP482ML7j9d`12LK_hNm$rfgnc1I z^t&>u3M%y)ZAc`SP}wKHgVQk(wW|{T6w5_c!HZSTaLQUpE(0-WR5$r-76g_&8U z`pLzqCYFY}d8N5YsYO-#K)KA+;`rSB6ev@#pt6J=s4X!iB|bkdl@-V=W&simOk9k9 jU|WMgydbd6AQt7;aR5!R0lJ_xC)ExV2*n`3u`vMvfxbR4 literal 0 HcmV?d00001 From 8ba528672a06e15e7d256dc8e12c6f8e89bb3042 Mon Sep 17 00:00:00 2001 From: Qijun Chen Date: Fri, 25 Jan 2013 00:04:30 -0500 Subject: [PATCH 3/3] homework 1 --- sieve_gen/sieve.py | 17 +++++++++++++++++ sieve_gen/sieve.pyc | Bin 0 -> 468 bytes sieve_gen/test1.py | 13 +++++++++++++ sieve_gen/test2.py | 17 +++++++++++++++++ sieve_gen/test3.py | 17 +++++++++++++++++ sieve_iter/sieve.py | 23 +++++++++++++++++++++++ sieve_iter/sieve.pyc | Bin 0 -> 1227 bytes sieve_iter/test1.py | 10 ++++++++++ sieve_iter/test2.py | 16 ++++++++++++++++ sieve_iter/test3.py | 19 +++++++++++++++++++ sieve_mod/example.py | 7 +++++++ sieve_mod/sieve.py | 24 ++++++++++++++++++++++++ sieve_mod/sieve.pyc | Bin 0 -> 701 bytes 13 files changed, 163 insertions(+) create mode 100644 sieve_gen/sieve.py create mode 100644 sieve_gen/sieve.pyc create mode 100644 sieve_gen/test1.py create mode 100644 sieve_gen/test2.py create mode 100644 sieve_gen/test3.py create mode 100644 sieve_iter/sieve.py create mode 100644 sieve_iter/sieve.pyc create mode 100644 sieve_iter/test1.py create mode 100644 sieve_iter/test2.py create mode 100644 sieve_iter/test3.py create mode 100644 sieve_mod/example.py create mode 100644 sieve_mod/sieve.py create mode 100644 sieve_mod/sieve.pyc 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 0000000000000000000000000000000000000000..b7bc2b29b5f9f85198c29ba8bfad5a85cd41da1d GIT binary patch literal 468 zcmbtQ!AiqG5Pg%?sKtWx(5pw&gGNCRLBxYcDQH1KP^rlpw@qV`O+-s_(m(dI8pCJZ5fmwk(74O0OxnxXqA*3g&}L^9?FquSX_)`-!z`&bA@ssEi;JxgFu{IQ!xN< z_B9E_#n^}`!vQ1C1A)qCnC7|8VkfFZnHpO;V$D)J@{~@KO7tdRfCIbFEUc|A!{}LO zg_+f1WcA_k!ERPB9(B14tYiH}{cJi)}=9l9CIZoJvC`Fvev60fq50OiekB2Z4 z8D@-&Z3cSx%~`)LVBmW}{{skQGeMYrm^5V$QEZet-lOz(J#KbYVOC& zei7W`C;Jbp<@Crc&iW0#h!9mD&A!JDvaI!$kJhqRpb)cd*67(!(ennlhl*fOcjjfz z`CS(ffU}mM0_jT)gDRUSj89MiW2~dxy)d$RqqYte-g6_Di7ehWL1WAq9wP=xt+DRw zAhBt4J;Wu}aDY1V9=H2<55MuN_dwpcPQ44w`e0`ZKXq{v)@U|!Rhbi@?n`G8iFGt9 zuRIfWuG}i#z<;<2A!f&<=8ox^Tc&La_F>F=Huqty?ve1T&wFwKl3<_8T|BxI%%m+5 z1m|t}5DkbD^}s_kZ*2qG>(L}QeO~VuOQ-L+=0vv2J0KUZRQjt@%vts}PT_voI2F&P>9)FQw=<}}MWQ-A W8oMHD*tIlNmQQP5&$!1x1b+ZTcj)>6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..00bf7595f9557497150a412a455b723429010182 GIT binary patch literal 701 zcmbtS%}T>S7@XZ|ZN+L&7QG0b>Ord@h#(?VJW0V;5CyFf^h9+T1#5*`$WH5x)=g4&k-;&R zgH7_q`6%J)7hlP^> literal 0 HcmV?d00001