What is 'eovdedn' doing in this function?

I ran across this code while doing some coding challenges and don’t understand how it is working. I don’t understand what the ‘eovdedn’ part is doing. The challenge was to return odd or even if the number was even or odd.

def isEvenOrOdd(num):
    return 'eovdedn'[num % 2::2]

My solution was:

def isEvenOrOdd(num):
    return "even" if num%2==0 else "odd"

>Solution :

num %2 returns False or True, which can be understood as 0 or 1.

Using the slicing notation ‘eovdedn'[num % 2::2] we can have the following results:

  • If num % 2 equals False (0) :
    'eovdedn'[0::2] = even (returns every 2 characters starting from 0)

  • If num % 2 equals True (1) :
    'eovdedn'[1::2] = odd (returns every 2 characters starting from 1)

Leave a Reply