From 96d054fd04f045790607a366fee4e5d366ec6d7e Mon Sep 17 00:00:00 2001 From: Neo Phukubye Date: Mon, 13 Oct 2025 08:46:37 +0200 Subject: [PATCH 1/4] fibo --- main.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index 56e2fb3..fcf2755 100644 --- a/main.py +++ b/main.py @@ -1,3 +1,4 @@ +from typing import List """ The Fibonacci sequence is a series of numbers where each number is the sum of the two preceding ones, starting from 0 and 1. @@ -12,8 +13,18 @@ return [0, 1, 1] """ def fibonacci(n: int) -> list[int]: - - return [] + if not isinstance(n, int): + raise ValueError("n must be int") + if n <= 0: + return [] + seq = [0] + if n == 1: + return seq + seq.append(1) + while len(seq) < n: + seq.append(seq[-1] + seq[-2]) + + return seq """ From 3e9005178ddcb2021c58ebd9cdf21d4b01376b23 Mon Sep 17 00:00:00 2001 From: Neo Phukubye Date: Mon, 13 Oct 2025 09:08:51 +0200 Subject: [PATCH 2/4] fibo update --- main.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index fcf2755..772067f 100644 --- a/main.py +++ b/main.py @@ -35,8 +35,9 @@ def fibonacci(n: int) -> list[int]: nums = [1, 3, 2, 27, 50, 17, 8, 4, 98, 22] return [2, 4, 8, 22, 50, 98] """ -def even(nums: list[int]) -> list[int]: - return [] +def even(nums: list[int]) -> list[int]: + ev=[ x for x in list if isinstance(x, int) and x % 2 == 0] + return sorted(ev) """ @@ -48,8 +49,8 @@ def even(nums: list[int]) -> list[int]: return [27, 17, 3, 1] """ def odd(nums: list[int]) -> list[int]: - - return [] + od = [x for x in list if isinstance(x, int) and x % 2 != 0] + return sorted(od, reverse=True) """ @@ -65,7 +66,13 @@ def odd(nums: list[int]) -> list[int]: sum(odd) = 4, sum(even) = 2 → returns 'Odd' """ def even_vs_odd(nums: list[int]) -> str: - return "" + ev_sum = sum(x for x in list if isinstance(x, int) and x % 2 == 0) + od_sum = sum(x for x in list if isinstance(x, int) and x % 2 != 0) + if ev_sum > od_sum: + return "Even" + if od_sum > ev_sum: + return "Odd" + return "Tie" """ From 2b9bd260ffccf809a79453ba2bd08a85bdc326d0 Mon Sep 17 00:00:00 2001 From: Neo Date: Tue, 14 Oct 2025 19:22:57 +0200 Subject: [PATCH 3/4] attempted --- .vscode/settings.json | 11 +++++++++++ main.py | 24 ++++++++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..184c4eb --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "python.testing.unittestArgs": [ + "-v", + "-s", + ".", + "-p", + "test_*.py" + ], + "python.testing.pytestEnabled": false, + "python.testing.unittestEnabled": true +} \ No newline at end of file diff --git a/main.py b/main.py index 772067f..703e69d 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,5 @@ from typing import List +import math """ The Fibonacci sequence is a series of numbers where each number is the sum of the two preceding ones, starting from 0 and 1. @@ -87,8 +88,24 @@ def even_vs_odd(nums: list[int]) -> str: is_prime(10) → False is_prime(-3) → raises ValueError """ -def is_prime(n): - return False +def is_prime(n)->bool: + if not isinstance(n,int): + raise ValueError("n must be an integer") + if n < 0: + raise ValueError("n must be non-negative") + if n < 2: + return False + if n ==2: + return True + if n % 2==0: + return False + i = 3 + limit=int(math.sqrt(n))+1 + while i <= limit: + if n % i == 0: + return False + i += 2 + return True """ @@ -104,4 +121,7 @@ def is_prime(n): - Look at the pattern of the example carefully. """ def generate_email(fullname: str, year: str, campus: str) -> str: + while isinstance(fullname,str) : + isinstance(year, str) or not isinstance(campus,str) return "" + From 40ec1c98c27e39274bcdbe3ebdeb835b60c9f996 Mon Sep 17 00:00:00 2001 From: Neo Phukubye Date: Fri, 17 Oct 2025 15:27:14 +0200 Subject: [PATCH 4/4] update --- .vscode/settings.json | 2 +- __pycache__/main.cpython-310.pyc | Bin 0 -> 2175 bytes main.py | 24 ++++++++++++++------ tests/__pycache__/test_main.cpython-310.pyc | Bin 0 -> 5601 bytes tests/test_main.py | 4 ++-- 5 files changed, 20 insertions(+), 10 deletions(-) create mode 100644 __pycache__/main.cpython-310.pyc create mode 100644 tests/__pycache__/test_main.cpython-310.pyc diff --git a/.vscode/settings.json b/.vscode/settings.json index 184c4eb..e9e6a80 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,7 +2,7 @@ "python.testing.unittestArgs": [ "-v", "-s", - ".", + "./tests", "-p", "test_*.py" ], diff --git a/__pycache__/main.cpython-310.pyc b/__pycache__/main.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..98aea52b776eeb62afb64e941a06cbd96027cb4d GIT binary patch literal 2175 zcmbVN&rcjT6t+E{Vc0B?5Wo)sQKTe2RrEmAL#lQ)tPPBqo!Qu4 zDBIyu(p!7ze?X2%{fm6S&2=NfoQ)nS2t%J~6hv<4e^f ze8~rW4Rr;+iT8Xd;x*M2?31ud-PjUpTFqd71@o&qRo5_PF{DnnQgvO;!Pit`gSBp) z;>4`Qz5F(}Zr$_JCq}!WDSMneXOF;tjPU@&77&ir%<&^(C!J9Ii2urKTy>Y5nQgWK zZJQsGCE68cvF01B=EsqWo&ypmYpk!?E;Dz?T5~0r;8*byTVU_6u%FQ0Ry|h5a$Y(^XFCnzHJ;OdAzHC-UfQRt~ZsE*_Rk4^Ej}YSymYku`TwkTAGz-3BS7w>?-Y9Aajsht z%754ou!py{qH(qoz1M}qCzYcAi$}gfnd|P^E{^^P$FT%b6GcuXPeXD;iM@1*x2gO+ zT;hZL!OS)ANp!|15*)FhVq6Ebh8n)5lCh4O7MOoVJ~e@g=Po*yHQ3{bt8{@Kj=|vO zVU6ZFTfG({fo;BG;3fi#+dCAoHMu^TJLi|IB#P17+Jqh%&7ZqUa6zfJGnXT~*Kv(+ z9-mTf4E13vK5r&N-wQAMncMNwJ~a;D(n8O39~XH)cNbwzbK4!5ysv-2GW#jSm`27_ zLbx^qwzI&PG}vEBX;vs`x-~3{GV5zE4|E2q>t+4H(Dvw!ZyxG%nm@p>KS9*&7!CED z9})u##eNe@>`>NV=_UGX$uN)W_?SOuhcWEnXV{ZqPwFJtlRB=G1(X|xTtF^>{X{(h zOw;w3d^z9}Pz-391n)IOBBPu4ts5#`y7sW(2d(5xD0?qAtEvcj331*zL|~IZsp(q3 jQo};uqfeOq2%^bSF8KVEn7NsXn8tilG^U$k?&Icvh@`~~ literal 0 HcmV?d00001 diff --git a/main.py b/main.py index 703e69d..55a0b2d 100644 --- a/main.py +++ b/main.py @@ -37,7 +37,7 @@ def fibonacci(n: int) -> list[int]: return [2, 4, 8, 22, 50, 98] """ def even(nums: list[int]) -> list[int]: - ev=[ x for x in list if isinstance(x, int) and x % 2 == 0] + ev=[ x for x in nums if isinstance(x, int) and x % 2 == 0] return sorted(ev) @@ -50,7 +50,7 @@ def even(nums: list[int]) -> list[int]: return [27, 17, 3, 1] """ def odd(nums: list[int]) -> list[int]: - od = [x for x in list if isinstance(x, int) and x % 2 != 0] + od = [x for x in nums if isinstance(x, int) and x % 2 != 0] return sorted(od, reverse=True) @@ -67,8 +67,8 @@ def odd(nums: list[int]) -> list[int]: sum(odd) = 4, sum(even) = 2 → returns 'Odd' """ def even_vs_odd(nums: list[int]) -> str: - ev_sum = sum(x for x in list if isinstance(x, int) and x % 2 == 0) - od_sum = sum(x for x in list if isinstance(x, int) and x % 2 != 0) + ev_sum = sum(even(nums)) + od_sum = sum(odd(nums)) if ev_sum > od_sum: return "Even" if od_sum > ev_sum: @@ -121,7 +121,17 @@ def is_prime(n)->bool: - Look at the pattern of the example carefully. """ def generate_email(fullname: str, year: str, campus: str) -> str: - while isinstance(fullname,str) : - isinstance(year, str) or not isinstance(campus,str) - return "" + fullname_ = fullname.split(" ") + year_=year[1:] + name=fullname_[0][:2] + name = name.lower() + surname=fullname_[-1][:3] + surname=surname.lower() + email=name + surname + campus + year_ + "@student.wethinkcode.co.za" + return email + + + + + diff --git a/tests/__pycache__/test_main.cpython-310.pyc b/tests/__pycache__/test_main.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0d2bd491f7448e228bc492cf6df783bd144e34a0 GIT binary patch literal 5601 zcmbtY&vVpkrN|CyeCsNd6U!_NMo*;%1~n>jHK4btT7JZbV{ zO_nqTyGWYiSd$~ol3gNAX{^bUX4x*2raaaZNV8&BNK+YWigxCqR=+eNFSNQI>em`A zJjSmKz3kF`_7(}D9qP7rn6Y&`^MiJ1C`S*o%Duy!U7+TQ;mU#VgS$@CbFEg(Y3XDc zU3kvXy+^nIC5i8~e`nGG?TYs9-BaH!#t+z8VUG_w86Ba+l>*ZNjP&!+K1C0^7 zkq{&JKSGc794jQAmB^#WfGDE8m{u-PBnuErsJTMoG!rgczAt33|CfQ)3zr^8Lp{~Q ztS@?xPc=zl*Z%v_R>$j$t>d7zb;mn)d!A+cTSrfVj^|zvZ2S6=v|54F64$r4ceVlo z&1Y%$EyvwFdJzQuQfx|u=s_K{Nx26x*6G(3+t1kwAm)e*DPmpF3kP`Hy z%O-R=*5zX`7aF57wNo!Y2W}GcVe}HjRft;<-#}DJ)T__iguG1ECEAf!AYLXh`UeC! zJbFSQA2liDqkmCcM;{VkBUscg|34kbSEvd33y4=C)*)Vlc%6i^Mq_inqIkRVjOST2#2-waL%yXhRsXP}&BoCfGn33@)#wJPz(ZV}V2&2KnA3dXMv6D;8 z9$~iyeD=}JDzR+%atg;#t5MH~MbmVxzA(+OWSV`?9`x{BHcdB5mTreBPz|3{hB|k0=e0ckq1wJK@e@2=Ia7*$om3!yrSP z*MFo$gv2w&lJ&+|pPgWuYt#!8&2TOmadN;ARGQ$Sy@yw%4oW?ob*@42Zd6HfIj0^& zf)b(86KokrbtIaM zxSW;HEo8BLn@WkP1vvA$ZO_FgBC4#TVy+?Ir+0_5h0{1Zy-#ZRvGIs3pc0&@9{VTCo521p0VW=f;f#(eFPqa z1`Xp><&kii)8u!)NfAkn*D6nySS`*xZ&Ewcgv-FhvaV`wF;X9pb%YeHII%4)Awv7H zq>gslG>IY|uj<)GXdF0#hRaCsn0cgtW5nE?%neoLLn=re-)pnuGXqDMmTQ|>=)n>n z$YDD`o6dK^$O#wbhMcfX;pXq*#m5k7DfG8gfEmmkath5!=oT~7pi(+?EW@i${V$}` z7jvj%ecYq_><=Uq>Ns*d)hEXd!Z!9sJK)$G9Xn!gv=hb~#~|O3zoQl1jZfdElRrftn5DAk4UjigVt9s)&pKZxVBH z$ppqz{qJQR2SkdGu6<3YXX$rh=$c!6U-Mr*CM|y7&`tI+i?)_(abvNCO;Jzj<3Xy$ zCH9I=z7FvyX$5AGZ%*7UVhc}IEV7|~E7V>2DLv9kzE6J)d0194_|kHG;fJM1R&OBo zrSxQKFlxzQV797h``4B@3LMWxRD2v=Dtb9n($}9QWktXGZ1~<{PR%z+yZ+fd(LFf- z8N?qU(q=Vcj9EP0;1|jT32lq+#Fe49UAm*K(F^eIo^XY<0LNuJCJn9c$2~-mG@3qsDliqm}!Xw3=S+fz_dtE}XRbR_CI=q6NFs9`nHz zAVliaP#HB@@oVCTUnYTrxBAg~wlT*rmAaC)i&=-|>H^jkh>67sOO_hLE1ye8^lJCL zBg^$_cbulx^&+<13XRrLFx;R6i_@g1?VVfagnYfx^?W+tI7c0aqW+oV+KA!9L6^cQ zzarn{0SRJI*B^8*LRdb6LE4^mjZ;k$6W$(}WWiqxcyn;=xxi$@l)b^9(EFbu(y|D? z7h){Y-oPjqC3N+rFpE!SVR7I(0sK@)|2>O7(qZZ6Ll|##c`w0|7@)pE6bW&LMLCz-JT literal 0 HcmV?d00001 diff --git a/tests/test_main.py b/tests/test_main.py index 8b66f19..b0c8684 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -87,10 +87,10 @@ class TestGenerateEmail(unittest.TestCase): def test_generate_email(self): self.assertEqual(generate_email('Auston Mtabane','2024','jhb'), 'aumtajhb024@student.wethinkcode.co.za') self.assertEqual(generate_email('Neo Phukubye','2025','jhb'), 'nephujhb025@student.wethinkcode.co.za') - self.assertEqual(generate_email('Kwenzakele Shongwe','2025','jhb'), 'kwshojhb025@student.wethinkcode.co.za') + self.assertEqual(generate_email('Kwenzakele Shongwe','2025','jhb'), 'kwshojhb025@student.wethinkcode.co.za') self.assertEqual(generate_email('Khatisani Mongwe','2025','jhb'), 'khmonjhb025@student.wethinkcode.co.za') self.assertEqual(generate_email('Agnes Chauke','2025','jhb'), 'agchajhb025@student.wethinkcode.co.za') - self.assertEqual(generate_email("Karabo Mahlare",'2025','jhb'), 'kamahjhb025@student.wethinkcode.co.za') + self.assertEqual(generate_email("Karabo Mahlare",'2025','jhb'), 'kamahjhb025@student.wethinkcode.co.za') def test_generate_email_edge(self): self.assertEqual(generate_email('Oriel Kopano Dibakoane','2027','cpt'), 'ordibcpt027@student.wethinkcode.co.za')