在您说还有其他线程之前,请相信我,我已经阅读了所有内容,但我发现它们没有帮助,因为我的代码不同,而且我从一开始就一直在自己做。不是在寻找免费赠品,而是在寻找一些实际的帮助。
下面的代码显示我可以打开一个要翻译成 Pig Latin 的文件,去掉所有标点符号和无用的数字,然后返回文件中的单词列表。规定是我只需要翻译单词。如果单词以元音开头,则在末尾添加“ay”。如果单词以辅音开头,则删除单词的第一个字母,将其添加到单词的末尾并在末尾添加“ay”。
即:单词=“ordway:和橙色=”orangeay”
编码:
import re
import nltk
def usr_name_file():
"""
Function: Gets name of file to translate
Parameter: n/a
Returns: name of file to open
"""
nameFile = input('\nEnter the filename to translate into Piglatin >>>')
return nameFile
def validate_name(nameFile):
"""
Function: Validates the existance of the usr file
Parameter: Name of file input by usr
Returns: Error if file not found, none if file found
"""
try:
inputFile= open(nameFile, 'r')
inputFile.close()
except IOError:
print('Error: File not found in this directory.\nTry again.\n')
return
def open_named_file(nameFile):
"""
Function:
Parameter:
Returns:
"""
with open(nameFile, 'r') as readFile:
data = readFile.read()
print(data) # import re makes this easier
words_list = re.findall(r"[\w']+", data) # extract punctuation
sans_numbers = [x for x in words_list if not (x.isdigit() or x[0] ==
'-' and x[1:].isdigit())]
return sans_numbers
def translate(list): # Help Here Please!
"""
Function: Takes in word and translates into piglatin
Parameter: Word
Returns: Translated word
"""
return
def main():
x = usr_name_file()
validate_name(x)
WordsList = open_named_file(x)
print(WordsList)
if __name__ == '__main__':
main()
这让我到了现在的位置,文件中的单词列表,没有双引号。未完成的 translate() 函数是我遇到困难的地方。下面是我想要它做的伪代码:
def translate(list):
for vowel_word, consonant_word in list:
if the word starts with a vowel, add "ay" to the end
if the word starts with a consonant, replace the first letter to the
end and add "ay"
return translated_list
这个想法是,对于我传递给翻译函数的单词列表,我希望它进入并以相同的顺序创建一个新的单词列表,但已翻译。我现在知道如何做的唯一方法是创建一个元音单词列表和一个辅音单词列表,但是如果我这样做,我认为使用 .write() 用翻译的句子编写一个新文件会很困难我知道如何编写新的文件代码,所以我需要的只是这个函数。完全披露这是针对硬件的,但正如您所看到的,我并不是要免费赠品,只是对这个功能有一点帮助,非常感谢。