python - 需要更改大写 python 来解释 3 种不同类型的输入,与 raw_input 函数相同

标签 python string raw-input capitalize

我是否输入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

我需要将 .capitalize 更改为 wtype,这样当我输入 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 的输入是:

  • 芝加哥

最佳答案

您可以使用正则表达式过滤器来消除字符串中包含“(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

关于python - 需要更改大写 python 来解释 3 种不同类型的输入,与 raw_input 函数相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17897802/

相关文章:

python - 使用 &/np.where()/np.any() 比较 Pandas 中多个列的 boolean 行值

python - Visual Studio Code 调试器不会在使用 pytest-asyncio 的断点处停止

c++ - 如何从字符串文字的串联形成 C++ 字符串?

windows - 是否可以在没有窗口的情况下使用 Windows Raw Input API(即从控制台应用程序)?

python - Python 中的浮点值不一致

python - pip 安装包两次

java - 使用 Scanner 来分离字符串

java - Java中字符串池的底层机制?

python-3.x - 如何在 python 3 中的函数中使用 raw_input 作为参数

python - 避免 raw_input 在 Windows 循环中按下按键