python3创建基本函数-删除特定字符串/翻译

w8biq8rn  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(398)

我在idle中玩python3,在发现什么是pig拉丁语之后,我正在尝试编写几个函数,对于从哪里开始/应该使用哪些python特定的单词/函数感到困惑。
(i) 1参数-我正在尝试将单词从pig拉丁语翻译回英语。它总是以“是”结尾,只有一个连字符。从本质上说,我试图删除Pig拉丁词结尾的hypen和“ay”。我想我得先找到连字符的位置。然后我想从字符串中提取2个子字符串:连字符前面的部分和连字符和末尾的“ay”之间的部分。例如,当给定字符串“at thay”时,两个子字符串是“at”和“th”。接下来我想结合两个子串来创建英语单词(上面的例子将返回“that”)
(ii)我想要一个函数,它接受一个参数,一个字符串,并找到该字符串中出现任何字符“aeiouaeiou”的第一个位置。例如,给定字符串“is”,函数应该返回0,给定字符串“pig”,我希望函数返回1。如果字符串中根本没有列出的元音,比如字符串“shh”,那么函数应该返回字符串的长度,在本例中为3。
(iii)我想要一个函数,返回一个单词从英语到拉丁语的翻译。翻译包括从第一个元音开始的所有内容,然后是连字符、第一个元音之前的单词部分和字母“ay”。
我知道这是一个很高的要求,但任何帮助这3个将大大帮助!

pgpifvop

pgpifvop1#

你可以做:

def unPigWord( word ): 
    """This function takes any Pig Latin word and returns that word in English.""" 
    parts = word.split( "-" )
    return parts[1][0: len(parts[1])-2] + parts[0]

def findVowel( word ):
    for i, char in enumerate( word ):
        if char in "aeiouAEIOU":
            return i
    return i + 1

def pigWord( word ):
    fvi = findVowel( word )
    return word[fvi:] + "-" + word[0:fvi] + "ay"

相关问题