Of course there’s an easier way. Just integrate the state of the art API dedicated for this exact problem. https://isevenapi.xyz/
This is confusing. I’m already using the iSeven API to determine if a number is 7. I’m getting a namespace collision error when I try to load this new API. Bug report filed.
def is_even(n): match n: case 1: return False case 0: return True # fix No1 case n < 0: return is_even(-1*n) case _: return is_even(n-2)
Python added match/case?! Bunch of mypy issues have been closed too. Maybe its time to dust off some old projects.
It was added in 3.10 and is surprisingly complete. The tutorial pep is a good starting point to see what it can accomplish
Back when I was learning programming a lot of lessons would make you do something like this, and then show you the real way to do it in the next lesson. My reaction was always “why didn’t you lead with this?”.
You must see the pain before you confront it.
modulo
pseudocode:
if number % 2 == 0 return "number is even" (is_num_even = 1 or true) else return "number is odd" (is_num_even = 0 or false)
plus you’d want an input validation beforehand
#You are an input. You have value! You matter! if number % 2 == 0 return "number is even" (is_num_even = 1 or true) else return "number is odd" (is_num_even = 0 or false)
Am I doing it right? /S.
Don’t put nbsps in code blocks, they show up literally.
who needs modulo when you can get less characters out of
while (number > 1) { number -= 2; } return number;
very efficient
edit: or theres the trusty iseven api
here is somewhat less:
return (number % 2) == 0;
return !(number & 1);
This is the way. Modulo takes too long to compute, bitwise compare should be a lot faster.
return !(number & 0x1);
oh shit yo
this comment chain is pretty awesome, I learned a lot from this thanks!