Почему индекс в переменной McClan s2[1] == s2.title()[1] выводит True, если s2[1] это символ нижнего регистра

На уроках было задание из молодого поколения Python Заглавные буквы

На вход программе подается строка состоящая из имени и фамилии человека, разделенных одним пробелом. Напишите программу, которая проверяет, что имя и фамилия начинаются с заглавной буквы.

Формат входных данных На вход программе подается строка.

Формат выходных данных Программа должна вывести «YES» если имя и фамилия начинаются с заглавной буквы и «NO» в противном случае.

Примечание. Строка содержит только буквы.

Мой вариант решения был таков:

a=input()
if a == a.title():
    print('YES')
else:
    print('NO')

Но преподаватель сказал, что он не будет считывать фамилии, в который два символа верхнего регистра, к примеру как у шотландцев или ирландцев McGregor, McClain, McGonagal и предложил свой код с заданием разобраться как он работает:

s = input()
for i in range(len(s)):
    if s[i] == ' ':
        break
s1, s2 = s[:i], s[i + 1:]
if s1[0] == s1.title()[0] and s2[1] == s2.title()[1]:
    print(True)
else:
    print(False)

Но я, хоть убейте, не могу понять почему же в переменной McClan s2[1] == s2.title()[1] выводит True, если s2[1] это символ нижнего регистра и он не равен s2 с методом title().

Прошу помочь разобраться.


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