Есть несколько проблем с этим.Если вы используете split и join, некоторые пробельные символы будут игнорироваться.Встроенные методы прописной буквы и заголовка не игнорируют пробелы.
>>> 'There is a way'.title()
'There Is A Way'
Если предложение начинается со статьи, вы не хотите, чтобы первое слово заголовка было в нижнем регистре.
Помните об этом:
import re
def title_except(s, exceptions):
word_list = re.split(' ', s) # re.split behaves as expected
final = [word_list[0].capitalize()]
for word in word_list[1:]:
final.append(word if word in exceptions else word.capitalize())
return " ".join(final)
articles = ['a', 'an', 'of', 'the', 'is']
print title_except('there is a way', articles)
# There is a Way
print title_except('a whim of an elephant', articles)
# A Whim of an Elephant