获得句子中每个单词的第一个字母?

时间:2017-02-13 20:11:48

标签: python python-3.x

我需要阅读一个文本文件,找出.txt文件的句子中的每个单词的第一个字母是否是元音。到目前为止我有这个:

def main():
#Open, read and close the datafile
datafile=open(input('Enter File Name: '))
contents=datafile.read()
datafile.close

def startsWithVowel():
    if contents[0] in ['A','a','E','e','I','i','O','o','U','u']:
        return true
    else:
        return false

这会检查数据文件内容的第一个字母,但是我需要检查句子中的每个单词,但我不确定如何处理句子中每个单词的第一个字母。请帮助!

2 个答案:

答案 0 :(得分:4)

VOWELS = set(['a', 'e', 'i', 'o', 'u'])


def starts_with_vowel(word):
    # make code more clean and efficient
    return word[0].lower() in VOWELS


# open the file using context manager - no need to do implicit open/close
with open(input('Enter File Name: ')) as f:
    for line in f:  # for every line in the file f
        for word in line.split(" "):  # split the line into word
            print(starts_with_vowel(word))

答案 1 :(得分:3)

main函数中,将contents=datafile.read()替换为contents = datafile.readlines(),然后相应地将startsWithVowel更改为:

def startsWithVowel(): for i in contents: if i[0] in ['A','a','E','e','I','i','O','o','U','u']: return True return False

同时将您的文件关闭为datafile.close()并使用TrueFalse代替truefalse进行python。