Проблема с capitalize(). Python

Возникла проблема с функцией capitalize(). Программа получает на вход строку, которая состоит из символов в разных регистрах. На выходе я должен получить ту же самую строку, если 1 - ый символ этой строки находится в верхнем регистре и строку с первым символом в верхнем регистре, если до этого он был в нижнем.

Код:

string = str(input())
print(string if string[0].isupper() else string.capitalize())

Пример работы:

konjac
Konjac

ApPLe
ApPLe

Проблема возникает, если во входных данных находится такая строка:

xYaPxPxHxGePfGtQySlNrLxSjDtNnTaRaEpAhPaQpWnDzMqGgRgEwJxGiBdZnMtHxFbObCaGiCeZkUqIgBhHtNvAqAlHp
Xyapxpxhxgepfgtqyslnrlxsjdtnntaraepahpaqpwndzmqggrgewjxgibdznmthxfbobcagicezkuqigbhhtnvaqalhp

На выходе я должен был получить ту же самую строку, где только первый символ (x) будет в верхнем регистре, но все последующие символы по какой - то причине конвертируются в нижний, хотя этого быть не должно.

UPD: Проблема решена. Функция capitalize() возвращает строку с 0 -ым символом в верхнем регистре, но при этом конвертирует все остальные символы в нижний регистр. Чтобы изменить только 0 - ый символ в строке - используем ф-ию upper() для 0 - го символа и присоединяем остальную часть строки.

Рабочий код:

string = str(input())
print(string if string[0].isupper() else string[0].upper() + string[1:])

Ответы (1 шт):

Автор решения: Victor VosMottor
yourstring = yourstring[0].upper() + yourstring[1:]
→ Ссылка