Во втором случае вам нужно разделить строку на случай верблюда, и для этого мы можем использовать эту аккуратную функцию .
Эта функция вернет список строк, разделенных верблюдомдело.Затем мы можем использовать это, чтобы напечатать то, что мы хотим.
Помните, что если ваша исходная строка содержит менее 3 заглавных букв, вы получите IndexError: tuple index out of range
.Если у вас есть больше, это не будет проблемой.
from re import finditer
def camel_case_split(identifier):
matches = finditer('.+?(?:(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|$)', identifier)
return [m.group(0) for m in matches]
s = "HmmamKhoujaSyria"
l = camel_case_split(s)
'sir {}, so your family\'s name is {}, and you were born in {}'.format(*l)
#'sir Hmmam, so your family's name is Khouja, and were born in Syria'
Если вы хотите разделить строку чем-то более простым, например пробелом или запятой, тогда вы можете использовать метод str.split ().
s = "Hmmam Khouja Syria"
l = s.split(" ")
'sir {}, so your family\'s name is {}, and you were born in {}'.format(*l)
#'sir Hmmam, so your family's name is Khouja, and were born in Syria'