def main():
myString = "aBcdEF"
str_changed = reverseAndOpposite(myString)
print(str_changed)
def reverseAndOpposite(a_str):
if len(a_str) == 1:
return a_str
else:
new_str = reverseAndOpposite(a_str[1:]) + a_str[0]
reverse = ""
for i in range(len(new_str)):
if new_str[i].isalpha():
if new_str[i].islower():
reverse += new_str[i].upper()
elif new_str[i].isupper():
reverse += new_str[i].lower()
else:
reverse += new_str[i]
return reverse
When I run it, the expected output should be "AbCDef", but instead I get "fedCBA". I cannot tell where the logic is wrong, any help?