在您说其他主题之前,相信我,我已经阅读了所有内容,但我发现它们没有用,因为我对我的代码表示不同,而且我从一开始就自己做过。不是寻找免费赠品,而是一些实际的帮助。
我的代码显示我可以打开一个要翻译成Pig Latin的文件,删除所有标点符号和无用的数字,然后返回文件中的单词列表。规定是我只需翻译单词。如果单词以元音开头,请在末尾添加“ay”。如果单词以辅音开头,则从单词中删除第一个字母,将其添加到单词的末尾,并在末尾添加“ay”。
ie:word =“ordway: 和orange =“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()
这让我到了现在的位置,文件中的单词列表,没有punc。 未完成的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()编写带翻译句子的新文件将很困难。我知道如何编写新的文件代码,所以我需要帮助的是这个函数。完全披露这是为硬件,但你可以看到我不是要求免费赠品,只是对这个功能的一点帮助,非常感谢。
答案 0 :(得分:0)
提示:
答案 1 :(得分:0)
如果仍然有人在看,这是一个解决方案(其中第一行中的“ par”是您要处理的文本块)
word_list = par.split(sep=None, maxsplit=-1)
def par_pig_short():
new_par = []
vowel_list = ["a", "e", "i", "o", "u"]
for word in word_list:
for char in word:
if char in vowel_list:
i = word.index(char)
sol = word[i:] + word[:i] + 'ay'
new_par.append(sol.lower())
final_new_par = ' '.join(new_par)
return final_new_par