0 points
*
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)
permalink
report
reply
0 points

Python added match/case?! Bunch of mypy issues have been closed too. Maybe its time to dust off some old projects.

permalink
report
parent
reply
1 point

It was added in 3.10 and is surprisingly complete. The tutorial pep is a good starting point to see what it can accomplish

permalink
report
parent
reply
1 point
*

My solution in perl back in the day when I was a teenage hobbyist who didn’t know about the modulus operator: Divide by 2 and use regex to check for a decimal point.

if ($num / 2 =~ /\./) { return “odd” }
else { return “even” }

permalink
report
reply
1 point

Divide by 2 and check for a decimal point.

I mean, it ain’t wrong.

permalink
report
parent
reply
1 point

You know, I was going to let this slide under the notion that we’re just ignoring the limited precision of floating point numbers… But then I thought about it and it’s probably not right even if you were computing with real numbers! The decimal representation of real numbers isn’t unique, so this could tell me that “2 = 1.9999…” is odd. Maybe your string coercion is guaranteed to return the finite decimal representation, but I think that would be undecidable.

permalink
report
parent
reply
1 point

Ackchyually-- IEEE 754 guarantees any integer with absolute value less than 2^24 to be exactly representable as a single precision float. So, the “divide by 2, check for decimals” should be safe as long as the origin of the number being checked is somewhat reasonable.

permalink
report
parent
reply
0 points

This could be optimized by using a recursive function.

permalink
report
reply
0 points

This could be made more servicavle by using a switch case

permalink
report
parent
reply
2 points

You could do this in one line…

By removing all the linebreaks.

permalink
report
reply
1 point
*
Deleted by creator
permalink
report
parent
reply
3 points

Of course there’s an easier way. Just integrate the state of the art API dedicated for this exact problem. https://isevenapi.xyz/

permalink
report
reply
3 points

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.

permalink
report
parent
reply

Programming Horror

!programming_horror@programming.dev

Create post

Welcome to Programming Horror!

This is a place to share strange or terrible code you come across.

For more general memes about programming there’s also Programmer Humor.

Looking for mods. If youre interested in moderating the community feel free to dm @Ategon@programming.dev

Rules

  • Keep content in english
  • No advertisements (this includes both code in advertisements and advertisement in posts)
  • No generated code (a person has to have made it)

Credits

  • Icon base made by Lorc under CC BY 3.0 with modifications to add a gradient

Community stats

  • 328

    Monthly active users

  • 26

    Posts

  • 129

    Comments

Community moderators