Из строкового метода istitle() руководство Python 2.6.5 гласит:
istitle()
Возвращает true, если строка является строкой в заголовке и в ней есть хотя бы один символ, например, заглавные буквы могут следовать только за непрописанными символами, а строчные - только за прописными. В противном случае верните false.
Но в этом случае возвращается false:
>>> book = 'what every programmer must know' >>> book.title() 'What Every Programmer Must Know' >>> book.istitle() False
Чего мне не хватает?
book.title() не меняет переменную book.Он просто возвращает строку в случае заголовка.
book.title()
book
>>> book.title() 'What Every Programmer Must Know' >>> book # still not in title case 'what every programmer must know' >>> book.istitle() # hence it returns False. False >>> book.title().istitle() # returns True as expected True
Метод title () не изменяет строку (строки неизменны в Python). Создается новая строка, которую вы должны присвоить своей переменной:
>>> book = 'what every programmer must know' >>> book = book.title() >>> book.istitle() True
Возможно, потому что вы все еще вызываете istitle () в оригинальной книге.
Вместо этого попробуйте book.title (). Istitle () ....
Выполните следующие действия:
print book
после того, как вы book.title(). Вы увидите, что book не изменилось.
Причина в том, что book.title() создает новую строку. Имя book по-прежнему относится к исходной строке.