Python3 创建基本功能 - 删除特定字符串/翻译

Posted

技术标签:

【中文标题】Python3 创建基本功能 - 删除特定字符串/翻译【英文标题】:Python3 Creating basic functions - Remove specific character strings/translating 【发布时间】:2017-03-01 06:02:54 【问题描述】:

我在闲置的情况下玩 python3,在发现 Pig Latin 是什么之后,我正在尝试编写几个函数,并且对从哪里开始/我应该使用哪些 python 特定单词/函数感到困惑。

(i) 1 个参数 - 我正在尝试将单词从猪拉丁语翻译回英语。它总是以“ay”结尾并且只有一个连字符。本质上,我试图删除猪拉丁词末尾的连字符和“ay”。我相信我需要从找到连字符的位置开始。然后我希望它从字符串中提取 2 个子字符串:连字符之前的部分以及连字符和末尾的“ay”之间的部分。例如,当给定字符串“at-thay”时,两个子字符串是“at”和“th”。在此之后,我想组合这两个子字符串来创建英文单词。 (上面的例子会返回“that”)

(ii) 我想要一个函数,它接受一个参数,一个字符串,并找到该字符串中出现任何字符“aeiouAEIOU”的第一个位置。例如,给定字符串“is”,您的函数应该返回 0,给定字符串“Pig”,我希望函数返回 1。如果字符串中根本没有任何列出的元音,例如与字符串“shh”一样,函数应该返回字符串的长度,在本例中为 3。

(iii) 我想要一个函数来返回从英语到猪拉丁语的单个单词的翻译。翻译包括从第一个元音开始,然后是连字符,第一个元音之前的单词部分,以及字母“ay”。

我知道这是一项艰巨的任务,但任何对这 3 个方面的任何帮助都会有很大帮助!

【问题讨论】:

你能告诉我们你的尝试吗? #str -> str def unPigWord(word): """这个函数接受任何 Pig Latin 单词并以英语返回该单词。""" index = word.find("-") x = word[0: index] index = word[index: len(word)] 返回索引 【参考方案1】:

你可以这样做:

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"

【讨论】:

以上是关于Python3 创建基本功能 - 删除特定字符串/翻译的主要内容,如果未能解决你的问题,请参考以下文章

Python3 元组

python3 如何去除字符串中不想要的字符

Python3 学习基础之基本语法

Python如何删除文本文件中特定字符串之后或之前的特定行数

Python3之基本数据类型,基本运算

如何仅删除由特定 matlab 脚本创建的变量