2016-09-05 5 views
2

У меня есть скрипт вида:Капитализация дефис имени

firstn = input('Please enter your first name: ') 
lastn = input('Please enter Your last name: ') 
print('Good day, ' + str.capitalize(firstn) + ' ' + str.capitalize(lastn)+ '!') 

Это будет прекрасно работать с простыми именами, как гнездо черных или MORGAN meeman, но когда я ввод дефисом имя как jordan-bellfort image то я бы ожидать, но я "Jordan-Bellfort Image" принимаем "Jordan-bellfort Image".

Как я могу получить питон для использования символа сразу после дефиса?

ответ

6

Вы можете использовать title():

print('Good day,', firstn.title(), lastn.title(), '!') 

Пример из консоли:

>>> 'jordan-bellfort image'.title() 
'Jordan-Bellfort Image' 
+1

Как это решить проблему ОП о "-" – levi

+0

@ Kasramvd nice. – levi

+0

Как говорится в документации: 'title' использует простое независимое от языка определение слова как группы последовательных букв. Поэтому он считается «иордан-колокольчиком» как два слова: «иордан» и «колокольчик». Прочтите документ;) –

1

Использование string.capwords() вместо

Split аргумент в слова, используя str.split(), капитализировать каждое слово , используя str.capitalize(), и присоединяем заглавные слова, используя str.join()

import string 
string.capwords(firstn, "-") 
+0

Является ли это быстрее, чем разделение его вручную, а затем соединение? –

1

Я хотел бы предложить только с помощью str.title, вот рабочий пример сравнения версии и один, используя str.title метода:

import string 

tests = [ 
    ["jack", "black"], 
    ["morgan", "meeman"], 
    ["jordan-bellfort", "image"] 
] 

for t in tests: 
    firstn, lastn = t 
    print('Good day, ' + str.capitalize(firstn) + 
      ' ' + str.capitalize(lastn) + '!') 
    print('Good day, ' + firstn.title() + ' ' + lastn.title() + '!') 
    print('-'*80) 

Итоговый в этом:

Good day, Jack Black! 
Good day, Jack Black! 
-------------------------------------------------------------------------------- 
Good day, Morgan Meeman! 
Good day, Morgan Meeman! 
-------------------------------------------------------------------------------- 
Good day, Jordan-bellfort Image! 
Good day, Jordan-Bellfort Image! 
-------------------------------------------------------------------------------- 

 Смежные вопросы

  • Нет связанных вопросов^_^