我需要阅读一个文本文件,找出.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
这会检查数据文件内容的第一个字母,但是我需要检查句子中的每个单词,但我不确定如何处理句子中每个单词的第一个字母。请帮助!
答案 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()
并使用True
和False
代替true
和false
进行python。