1.利用Python實現Pig Latin字母遊戲
“Pig Latin”是一個英語兒童文字改寫遊戲,整個遊戲遵從下述規則:
a. 母音字母是‘a’、‘e’、‘i’、‘o’、‘u’。字母‘y’在不是第一個字母的情況下,也被視作母音字母。其他字母均為子音字母。例如,單詞“yearly”有三個母音字母(分別為‘e’、‘a’和最後一個‘y’)和三個子音字母(第一個‘y’、‘r’和‘l’)。
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”。
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
輸入格式:
一系列單詞,單詞之間使用空格分隔。
輸出格式:
按照以上規則轉化每個單詞,單詞之間使用空格分隔。
輸入樣例:
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`))