• Euphoma@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 months ago
    def even(n: int) -> bool:
        code = ""
        for i in range(0, n+1, 2):
            code += f"if {n} == {i}:\n out = True\n"
            j = i+1
            code += f"if {n} == {j}:\n out = False\n"
        local_vars = {}
        exec(code, {}, local_vars)
        return local_vars["out"]
    

    scalable version

  • QuazarOmega@lemy.lol
    link
    fedilink
    arrow-up
    1
    ·
    3 months ago

    No, no, you should group the return false lines together 😤😤

    if (number == 1) return false;
    else if (number == 3) return false;
    else if (number == 5) return false;
    //...
    else if (number == 2) return true;
    else if (number == 4) return true;
    //...
    
  • kryptonianCodeMonkey@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    3 months ago
    def is_even(num):
        if num == 1:
            return False
        if num == 2:
            return True
        raise ValueError(f'Value of {num} out of range. Literally impossible to tell if it is even.')
  • Aedis@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    3 months ago

    I’m partial to a recursive solution. Lol

    def is_even(number):
        if number < 0 or (number%1) > 0:
            raise ValueError("This impl requires positive integers only") 
        if number < 2:
            return number
        return is_even(number - 2)
    
    • tetris11@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      3 months ago

      I prefer good ole regex test of a binary num

      function isEven(number){
         binary=$(echo "obase=2; $number" | bc)
         if [ "${binary:-1}" = "1" ]; then
               return 255
         fi
         return 0
      }