I am learning python and meet an exercise:
Strings. Create a function that will return another string similar to the input string, but with its case i
Your solution is perfectly fine. You don't need three branches though, because str.upper() will return str when upper is not applicable anyway.
str.upper()
With generator expressions, this can be shortened to:
>>> name = 'Mr.Ed' >>> ''.join(c.lower() if c.isupper() else c.upper() for c in name) 'mR.eD'