标点符号/大写(python)

时间:2017-10-30 02:44:13

标签: python

我想用Python处理一个句子。首先,我想颠倒句子中单词的顺序。然后,我想删除所有不以大写字母开头的单词。例如,BaSe fOO ThE AttAcK将变为attack the base

到目前为止,这是我的代码:

    a = input('code: ')
    b = a.split()
    b.reverse()
    g = ''
    for i in b:
        if i[0] == i[0].upper():
        g += i+' '
    print('says:',g.lower()[:-1])

#ex) BaSe fOO ThE AttAcK
     attack the base
#it all works but punctuation. it can't discern punctuation and uppercase/lowercase so, when I input !!! it makes !!!
#it has to make nothing when I input !!!
#Help me please. 

这不能很好地处理标点符号 - 当我输入!!!时输出!!!,但我希望它不输出任何内容。我也不确定它能很好地处理大写/小写。如何让我的代码更好用?

1 个答案:

答案 0 :(得分:0)

您可以在执行其他字符串处理任务之前先删除标点符号。

import string


a = input('code: ')

# Remove punctuations
translator = str.maketrans('', '', string.punctuation)
a = a.translate(translator)

b = a.split()
b.reverse()
g = ''
for i in b:
    if i[0] == i[0].upper():
        g += i + ' '
print('says:', g.lower()[:-1])

(作为一般性建议,使用更明智的变量名称,请在下次更清楚地描述问题。)