2015-03-18 2 views
0

так что я новичком в Python и я хочу, чтобы отфильтровать все слова в тексте, который начинается с прописной буквой, так с моим ограниченным знанием Питона я сделал это:удаления слов начинаются с верхним регистром

def filterupper(text): 
    upper = string.ascii_uppercase 
    filteredupper = [w for w in text not in startswith(upper)] 
return filteredupper 

и пришла эта ошибка

File "<pyshell#58>", line 3, in filterupper 
filteredupper = [w for w in text not in startswith(upper)] 

NameError: глобальное имя 'StartsWith' не определен

поэтому я попытался это:

def filterupper(text): 
    upper = string.ascii_uppercase 
    filteredupper = [w for w in text not in upper] 
return filteredupper 

и эта ошибка пришла:

File "<pyshell#55>", line 3, in filterupper 
filteredupper = [w for w in text not in upper] 
TypeError: 'in <string>' requires string as left operand, not list 

так может любой один говорит мне, как удалить слова начинается с заглавной буквы, и скажите мне, что я сделал неправильно в этих кодах

спасибо

ответ

0

Попробуйте использовать str.islower(), чтобы проверить, является ли буква в нижнем регистре:

def filterupper(text): 
    return " ".join([word for word in text.split() if word[0].islower()]) 

>>> filterupper("My name is Bob And I am Cool") 
"name is am" 
>>>