1

我输入 1 个单词,括号中输入 1 个单词和 1 个单词,以及 2 个单词。IE。“American”或“american (grill)”或“american italian”只有每个单词的第一个字母会大写。

我已经写了我的代码

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

我需要为wtype更改.capitalize,所以当我输入 wtype EITHER时(不是全部,一次只有 1 个)

aMERICan
aMerican iTalian 
american (nEw) 

Python 将其解释为

American
American Italian    
American (New)
  • 但我需要 python 来读取它的 1 个单词“aMERICan”或“American (New)”

任何想法,我都在忽悠上下,那些不比 .capitalize 更好用

有任何想法吗?

我可以像在wcity中那样做.capitalize ,因为我的城市没有括号,其中包含1 个单词或 2 个单词

我对 wcity 的输入不是:

  • 芝加哥(特洛伊)

  • 维加斯(里诺)

  • 芝加哥布朗克斯(2 个字)

我对 wcity 的输入是:

  • 芝加哥
4

1 回答 1

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
于 2013-08-04T11:02:44.343 回答