2013-07-27 6 views
1

Wether Я ввожу 1 слово, 1 слово и 1 слово в круглых скобках и 2 слова. то есть. «Американский» или «Американский (гриль)» или «Американский итальянский» будет заглавная буква только первая буква в каждом слове.Необходимо изменить капитализировать питон для интерпретации 3 различных типов входов SAME с функцией raw_input

Я написал свой код

wcity = raw_input("Please enter a city ==> ") 
print 
wtype = raw_input("Please enter a restaurant type ==> ") 
print 

И изменил его:

wcity = raw_input("Please enter a city ==> ").capitalize() 
print 
wtype = raw_input("Please enter a restaurant type ==> ").capitalize() 
print 

мне нужно изменить .capitalize для wtype это так, когда я вход для wtype ОБА (не только один из них за один раз)

aMERICan 
aMerican iTalian 
american (nEw) 

Python интерпретирует это как

American 
American Italian  
American (New) 
  • , но мне нужно питона читать это то же самое кастрированный баран его 1 слово "AMERICAN" или "американский (Новый)"

любые идеи , ive обманывают с верхним и нижним, и те не работают лучше, чем .capitalize

Любые идеи?

я могу сделать .capitalize, как я делаю в wcity, потому что мои города не имеют скобки с слова внутри них или 2 словами

Моих входов для wcity не является:

  • Чикагский (Troy)

  • Вег как (Reno)

  • чикаго Bronx (2 слова)

Мои входы для wcity являются:

  • чикаго

ответ

1

Вы можете использовать обычный фильтр выражения для исключения части строки, содержащей "(new)":

import re 
def myfilter(x): 
    return ' '.join(re.sub(ur'\(\s*[nN][eE][wW]\s*\)','',x).title().split()) 

wcity = myfilter(raw_input("Please enter a city ==> ")) 
print wcity 
wtype = myfilter(raw_input("Please enter a restaurant type ==> ")) 
print wtype 
+0

большое спасибо! я закончил решение этой последней недели, он научил нас в классе – user2605035

+0

, если вам понравился ответ, и вы хотите, чтобы он был принят, вы можете проголосовать за него и щелкнуть по зеленой стрелке рядом с ответом ...;) –

+0

просто сделал! еще раз спасибо – user2605035