I am trying to writing a function which will take a sentence and make each odd letter an uppercase one and each even letter a lowercase one.
Here is what I tried:
def func(st):
res = []
for index, c in enumerate(st):
if index % 2 == 0:
res.append(c.upper())
else:
res.append(c.lower())
return ''.join(res)
print(myfunc(something))
When the input is "Hello my guy", the output is "HeLlO My gUy" and not "HeLlO mY gUy" because it counts blank as a letter, what can I do?
Advertisement
Answer
I’d write it like this:
from itertools import cycle
def my_func(st):
operation = cycle((str.upper, str.lower))
conv = [next(operation)(c) if c != ' ' else c for c in st]
return ''.join(conv)
Demo:
>>> my_func("Hello my guy")
'HeLlO mY gUy'