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 inverted. For example, input of "Mr. Ed" will result in "mR. eD" as the output string.
name = 'Mr.Ed'
name_list = 
for i in name:
Your solution is perfectly fine.
You don't need three branches though, because
str.upper() will return str when upper is not applicable anyway.
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'