From 1374c19feb701bd0c131a6e75194d7c45456a682 Mon Sep 17 00:00:00 2001 From: Kwenzakele Date: Mon, 13 Oct 2025 18:36:40 +0200 Subject: [PATCH 1/5] Adiing the main file --- main.py | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 7 deletions(-) diff --git a/main.py b/main.py index 56e2fb3..21c3ee2 100644 --- a/main.py +++ b/main.py @@ -11,9 +11,21 @@ n = 3 return [0, 1, 1] """ -def fibonacci(n: int) -> list[int]: - - return [] +def fibonacci(num: int) -> list[int]: # what does this line do: + first_fibonacci = 0 + second_fibonacci = 1 + list_fibo = [first_fibonacci, second_fibonacci] + + + if num <= 0: #checks if the nth the is not less then 0 + raise ValueError + elif num == 1: #if the nth term is 1 you must output first_fibonacci + return first_fibonacci + else: + while len(list_fibo) < num: + n= list_fibo[- 1] + list_fibo[-2] + list_fibo.append(n) + return list_fibo """ @@ -25,7 +37,16 @@ def fibonacci(n: int) -> list[int]: return [2, 4, 8, 22, 50, 98] """ def even(nums: list[int]) -> list[int]: - return [] + count = 0 + even_list = [] + for i in nums: + if i % 2 == 0: + even_list.append(i) + count = count + 1 + print(len(even_list)) + return even_list + + """ @@ -37,8 +58,15 @@ def even(nums: list[int]) -> list[int]: return [27, 17, 3, 1] """ def odd(nums: list[int]) -> list[int]: - - return [] + count = 0 + odd_list = [] + for i in nums: + if i % 2 == 1: + odd_list.append(i) + count = count + 1 + + print(len(odd_list)) + return odd_list[::-1] """ @@ -54,6 +82,10 @@ def odd(nums: list[int]) -> list[int]: sum(odd) = 4, sum(even) = 2 → returns 'Odd' """ def even_vs_odd(nums: list[int]) -> str: + for i in nums: + if i % 2 == 0: + sum_even = sum(i) + return sum_even return "" @@ -86,4 +118,18 @@ def is_prime(n): - Look at the pattern of the example carefully. """ def generate_email(fullname: str, year: str, campus: str) -> str: - return "" + *name, surname = fullname.split() + name_1 = name[0] + name_1.lower() + + return f'{name_1[0:2]}{surname.lower()[0:3]}{campus}{year[1:4]}@student.wethinkcode.co.za' + + + + + +# print(even([1,2,3,4,6])) +# print(odd([1,2,3,7])) +print(fibonacci(5)) +# print(even_vs_odd([1,2,3,8,5])) +print(generate_email('Oriel Kopano Dibakoane','2027','cpt')) \ No newline at end of file From d9e8d4237dfae4b0eea20022ef878e5f51e9761c Mon Sep 17 00:00:00 2001 From: Kwenzakele Date: Tue, 14 Oct 2025 03:48:23 +0200 Subject: [PATCH 2/5] even_odd added --- .vscode/settings.json | 5 +++++ main.py | 41 +++++++++++++++++++++++++++++++++++------ 2 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..25f7b5b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "python.testing.unittestArgs": ["-v", "-s", ".", "-p", "test_*.py"], + "python.testing.pytestEnabled": false, + "python.testing.unittestEnabled": true +} diff --git a/main.py b/main.py index 21c3ee2..b0d9869 100644 --- a/main.py +++ b/main.py @@ -82,11 +82,40 @@ def odd(nums: list[int]) -> list[int]: sum(odd) = 4, sum(even) = 2 → returns 'Odd' """ def even_vs_odd(nums: list[int]) -> str: + count = 0 + sum_evens = 0 + sum_odds = 0 + list_even = [] + list_odds = [] + empty_list = [] for i in nums: if i % 2 == 0: - sum_even = sum(i) - return sum_even - return "" + list_even.append(i) + sum_evens = sum(list_even) + count = count + 1 + + for i in nums: + if i % 2 == 1: + list_odds.append(i) + sum_odds = sum(list_odds) + count = count + 1 + + + if sum_evens > sum_odds: + result = 'Even' + # else: + # result = 'Tie' + elif sum_evens < sum_odds : + result = 'Odd' + else: + result = 'Tie' + if list_even == empty_list and list_odds == empty_list: + result = 'Tie' + + + return result + + """ @@ -130,6 +159,6 @@ def generate_email(fullname: str, year: str, campus: str) -> str: # print(even([1,2,3,4,6])) # print(odd([1,2,3,7])) -print(fibonacci(5)) -# print(even_vs_odd([1,2,3,8,5])) -print(generate_email('Oriel Kopano Dibakoane','2027','cpt')) \ No newline at end of file +# print(fibonacci(5)) +print(even_vs_odd([])) +# print(generate_email('Oriel Kopano Dibakoane','2027','cpt')) \ No newline at end of file From 3630a306131095cee324c55dc7c311396cc916ad Mon Sep 17 00:00:00 2001 From: Kwenzakele Date: Tue, 14 Oct 2025 04:07:09 +0200 Subject: [PATCH 3/5] adding prime numbers --- main.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index b0d9869..454316c 100644 --- a/main.py +++ b/main.py @@ -131,7 +131,16 @@ def even_vs_odd(nums: list[int]) -> str: is_prime(-3) → raises ValueError """ def is_prime(n): - return False + if n <= 0: + raise ValueError + else: + if n % 2 == 1: + result = True + elif n == 2: + result = True + else: + result = False + return result """ @@ -160,5 +169,6 @@ def generate_email(fullname: str, year: str, campus: str) -> str: # print(even([1,2,3,4,6])) # print(odd([1,2,3,7])) # print(fibonacci(5)) -print(even_vs_odd([])) -# print(generate_email('Oriel Kopano Dibakoane','2027','cpt')) \ No newline at end of file +# print(even_vs_odd([])) +# print(generate_email('Oriel Kopano Dibakoane','2027','cpt')) +print(is_prime(9)) \ No newline at end of file From 0009067f5037e748d15c48d8ed6ae25a30484db5 Mon Sep 17 00:00:00 2001 From: Kwenzakele Date: Tue, 14 Oct 2025 04:09:42 +0200 Subject: [PATCH 4/5] adding prime numbers --- main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.py b/main.py index 454316c..ac78c5e 100644 --- a/main.py +++ b/main.py @@ -171,4 +171,4 @@ def generate_email(fullname: str, year: str, campus: str) -> str: # print(fibonacci(5)) # print(even_vs_odd([])) # print(generate_email('Oriel Kopano Dibakoane','2027','cpt')) -print(is_prime(9)) \ No newline at end of file +print(is_prime(10)) \ No newline at end of file From e50ae702737489c8a94e5dfc16da2016ee63060d Mon Sep 17 00:00:00 2001 From: Kwenzakele Date: Mon, 20 Oct 2025 05:23:44 +0200 Subject: [PATCH 5/5] .. --- __pycache__/main.cpython-313.pyc | Bin 0 -> 3864 bytes __pycache__/test_main.cpython-313.pyc | Bin 0 -> 9452 bytes main.py | 55 +++++++++++++------------- tests/test_main.py | 6 ++- 4 files changed, 31 insertions(+), 30 deletions(-) create mode 100644 __pycache__/main.cpython-313.pyc create mode 100644 __pycache__/test_main.cpython-313.pyc diff --git a/__pycache__/main.cpython-313.pyc b/__pycache__/main.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9f96e4888bade663b91fa6110a203de3dca1d042 GIT binary patch literal 3864 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 literal 0 HcmV?d00001 diff --git a/main.py b/main.py index ac78c5e..989efa5 100644 --- a/main.py +++ b/main.py @@ -18,9 +18,9 @@ def fibonacci(num: int) -> list[int]: # what does this line do: if num <= 0: #checks if the nth the is not less then 0 - raise ValueError + return [] elif num == 1: #if the nth term is 1 you must output first_fibonacci - return first_fibonacci + return [first_fibonacci] else: while len(list_fibo) < num: n= list_fibo[- 1] + list_fibo[-2] @@ -43,7 +43,7 @@ def even(nums: list[int]) -> list[int]: if i % 2 == 0: even_list.append(i) count = count + 1 - print(len(even_list)) + even_list.sort() return even_list @@ -64,8 +64,7 @@ def odd(nums: list[int]) -> list[int]: if i % 2 == 1: odd_list.append(i) count = count + 1 - - print(len(odd_list)) + odd_list.sort() return odd_list[::-1] @@ -94,25 +93,23 @@ def even_vs_odd(nums: list[int]) -> str: sum_evens = sum(list_even) count = count + 1 - for i in nums: - if i % 2 == 1: - list_odds.append(i) - sum_odds = sum(list_odds) - count = count + 1 + for i in nums: + if i % 2 == 1: + list_odds.append(i) + sum_odds = sum(list_odds) + count = count + 1 - if sum_evens > sum_odds: - result = 'Even' - # else: - # result = 'Tie' - elif sum_evens < sum_odds : - result = 'Odd' - else: - result = 'Tie' + if sum_evens > sum_odds: + result = 'Even' + elif sum_odds > sum_evens : + result = 'Odd' + else: + return 'Tie' + if list_even == empty_list and list_odds == empty_list: - result = 'Tie' + result = 'Tie' - return result @@ -131,7 +128,7 @@ def even_vs_odd(nums: list[int]) -> str: is_prime(-3) → raises ValueError """ def is_prime(n): - if n <= 0: + if isinstance(n, (list, dict, str)) or n < 0: raise ValueError else: if n % 2 == 1: @@ -158,17 +155,19 @@ def is_prime(n): def generate_email(fullname: str, year: str, campus: str) -> str: *name, surname = fullname.split() name_1 = name[0] - name_1.lower() + if name_1 == name[0]: + return f'{name_1[0:2].lower()}{surname.lower()[0:3]}{campus}{year[1:4]}@student.wethinkcode.co.za' + - return f'{name_1[0:2]}{surname.lower()[0:3]}{campus}{year[1:4]}@student.wethinkcode.co.za' + return f'{name[0:2]}{surname.lower()[0:3]}{campus}{year[1:4]}@student.wethinkcode.co.za' -# print(even([1,2,3,4,6])) -# print(odd([1,2,3,7])) -# print(fibonacci(5)) -# print(even_vs_odd([])) +print(even([16,9,4,8,12,4])) +# print(odd([0, 1, 1, 2, 3, 5, 8, 13, 21, 34])) +# print(fibonacci(-1)) +# print(even_vs_odd([5,3,8])) # print(generate_email('Oriel Kopano Dibakoane','2027','cpt')) -print(is_prime(10)) \ No newline at end of file +print(is_prime(0)) \ No newline at end of file diff --git a/tests/test_main.py b/tests/test_main.py index 8b66f19..82ded96 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -1,5 +1,6 @@ -from main import * import unittest +from main import * + class TestFibonacci(unittest.TestCase): @@ -98,7 +99,8 @@ def test_generate_email_edge(self): - +if __name__ == '__main__': + unittest.main()