社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
实验内容如下:
代码如下:
#Pig_Latin.py Pig_Latin语言
def high_low(word):#将大写字母全部转化小写
word=word.lower()
return word
def frist_vowel(word):#判断单词首字母是不是元音
vowel=['a','e','i','o','u']#元音字母
TF=[]
for i in vowel:
if i==word[0]:#若该单词是以元音字母开始
TF.append(1)#在列表TF里存入1
return len(TF)
#若列表里从未存入数据,len(TF)==0,即该单词为辅音开始
#若列表里有存入的数据,len(TF)!=0,即该单词为元音音开始
def move(i,word,suffix):#帮助移动字母,完成从英文到Pig Latin的转换
#i为Word前需要移动到末尾的字母个数,suffix为需加到末尾的后缀
words=''#建立一个空的字符串
#移除前i个字母
for j in range(len(word)-i):
words+=word[j+i]#将从i到len(word)-1个字母存入words
#将前i个字母移到末尾
for k in range(i):
words+=word[k]
#加上后缀
words+=suffix
return words
def pig_latin(word):#将英文转换成Pig Latin单词
vowel=['a','e','i','o','u']#元音字母
if frist_vowel(word)!=0:#如果首字母是元音字母
words=word+'hay'#在单词末尾加上'hay'
return words
else:#若不是
if word[0]=='q' and word[1]=='u':#单词是以“qu"开头
words=move(2,word,'ay')#将前两个字母移到末尾,并加入后缀‘hay’
return words
elif word[0]=='y':#如果单词是以y开头,元音字母表不变
frist=[0]#建立一个空列表
for i in vowel:
for j in range(len(word)):
if word[j]==i:#将与元音表相同字母的下标存入frist表
frist.append(j)
frist.sort()
mins=frist[1]#取出最小的数字,即第一个元音的位置,也是需移动的字母个数
words=move(mins,word,'ay')#移动字母并加后缀
return words
else:#若首字母不是'y'
vowel.append('y')#将'y'编入元音表,其余同上
frist=[0]
for i in vowel:
for j in range(len(word)):
if word[j]==i:
frist.append(j)
frist.sort()
mins=frist[1]#取出最小的数字,即第一个元音的位置,也是需移动的字母个数
words=move(mins,word,'ay')
return words
def main():
sentence=raw_input("Please input the sentence to be converted into Pig Latin language:n")
#输入需转换的句子
word=sentence.split(" ")
#以空格为分界,将句子分成单词存入列表
sentences='' #建立一个空字符串
#将所有单词完成转换,存入sentences,并输出
for i in range(len(word)):
Word=word[i]
Word=high_low(Word)#将所有大写字母都改成小写
Word=pig_latin(Word)#将所有英文单词转换为Pig Latin语言
sentences=sentences+Word+' '#将转换后的单词存入sentences
print "The sentence converted to Pig Latin is:n"
print sentences
main()
效果如下:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!