Проблема в том, что строки неизменны.
Таким образом, эта строка возвращает новую строку, а не заменяет символ в строке.
string.replace(char, string.upper())
Исправлено Отправленный код
def to_alternating_case(string):
result = ""
for char in string:
if ord(char) in range(97, 123):
result += char.replace(char, char.upper()) # replace invidivual character
elif ord(char) in range (65,91):
result += char.replace(char, char.lower()) # replace invidivual character
else: # characaters outside [a-zA-Z] unchanged
result += char
return result
print(to_alternating_case("heLLo")) # Outputs "HEllO"
Переписать код
Упрощенный метод.
def to_alternating_case(string):
return ''.join(c.upper() if c.islower() else c.lower() for c in string)
print(to_alternating_case("heLLo")) # Outputs "HEllO"