20190118-利用Python实现Pig Latin游戏

Posted 何发奋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20190118-利用Python实现Pig Latin游戏相关的知识,希望对你有一定的参考价值。

1.利用Python实现Pig Latin字母游戏

“Pig Latin”是一个英语儿童文字改写游戏,整个游戏遵从下述规则:
a. 元音字母是‘a’、‘e’、‘i’、‘o’、‘u’。字母‘y’在不是第一个字母的情况下,也被视作元音字母。其他字母均为辅音字母。例如,单词“yearly”有三个元音字母(分别为‘e’、‘a’和最后一个‘y’)和三个辅音字母(第一个‘y’、‘r’和‘l’)。
b. 如果英文单词以元音字母开始,则在单词末尾加入“hay”后得到“Pig Latin”对应单词。例如,“ask”变为“askhay”,“use”变为“usehay”。(同上)
c. 如果英文单词以‘q’字母开始,并且后面有个字母‘u’,将“qu”移动到单词末尾加入“ay”后得到“Pig Latin”对应单词。例如,“quiet”变为“ietquay”,“quay”变为“ayquay”。
d. 如果英文单词以辅音字母开始,所有连续的辅音字母一起移动到单词末尾加入“ay”后得到“Pig Latin”对应单词。例如,“tomato”变为“omatotay”, “school” 变为“oolschay”,“you” 变为“ouyay”,“my” 变为“ymay ”,“ssssh” 变为“sssshay”。
e. 如果英文单词中有大写字母,必须所有字母均转换为小写。
输入格式:
一系列单词,单词之间使用空格分隔。
输出格式:
按照以上规则转化每个单词,单词之间使用空格分隔。
输入样例:
Welcome to the Python world Are you ready
输出样例:
elcomeway otay ethay ythonpay orldway arehay ouyay eadyray
Step1:先写出每个转换规则的算法
def Pig_Latin(s):
    s=s.lower()
    #转换为小写
    if s[0] in aeiou:
        vowel_begin = True
    else:
        vowel_begin = False
    if vowel_begin:
        s = s+hay
    #以元音字母开始,则在单词末尾加入“hay”
    if s[0]==q and s[1] ==u:
        s =s[2:]+quay
    #以‘q’字母开始,并且后面有个字母‘u’,将“qu”移动到单词末尾加入“ay”
    end = 0
    for i in range(len(s)):
        if s[i] in aeiou or (i>0 and s[i]==y):
            end = i
            break
    s=s[end:]+s[:end]+ay
    #以辅音字母开始,所有连续的辅音字母一起移动到单词末尾加入“ay”
    return s

Step2:写一个主函数来实现输入格式和输出格式的转换

输入格式:
一系列单词,单词之间使用空格分隔。
输出格式:
按照以上规则转化每个单词,单词之间使用空格分隔。

def transfer_main(str):
    s = str.split()
    result = []
    for i in s:
        result.append(Pig_Latin(i))
    new_s= .join(result)
    return new_s
print(transfer_main(Welcome to the Python world Are you ready))

 

 














以上是关于20190118-利用Python实现Pig Latin游戏的主要内容,如果未能解决你的问题,请参考以下文章

20190118_xlVBA多表合并

数据结构算法实现:利用两个线性表LA和LB分别表示两个集合A和B,现要求一个新的集合A=A并B。

节源码,利用Codeblocks编译通过

使用 Apache PIG 读取多行 JSON

python 正则或者BeautifulSoup 把带http的字符串过滤掉,怎么实现,谢谢

使用 Pig 和 Python