所以我有一个函数,它接受一个字符串输入并将其变成猪拉丁语。
对于以辅音开头的所有单词(除元音外的所有单词),我必须取出该单词的第一个字母并将其移到后面,然后在单词中添加“ay”。
例如“like”会变成“ikelay”。
在我的程序中,首先拆分给我的字符串输入,然后检查新创建的列表的每个元素,以查看该元素的第一个字符是元音,辅音还是其他字符。
def simple_pig_latin(input, sep=" ", end="."):
splitinput = input.split(sep)
for i in splitinput:
if splitinput[splitinput.index(i)][0] in ['a','e','i','o','u']:
splitinput[splitinput.index(i)] = str(i) + "way"
elif splitinput[splitinput.index(i)][0] in ['b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z']:
splitinput[splitinput.index(i)] = str(i) + "ay"
else:
continue
finalstring = ' '.join(splitinput)
finalstring = finalstring + end
simple_pig_latin("i like this")
注意在elif分支中,我应该把i的第一个字母放在该单词的末尾并添加“ay”。给定输入字符串“我喜欢这个”我应该将第二个单词(因为像l开始,使其成为辅音)变为'ikelay'我将如何重新排列以使其成为ikel?< / p>
答案 0 :(得分:2)
我试图保留你的结构,同时仍然删除无用的代码:
def simple_pig_latin(input_text, sep=" ", end="."):
words = input_text.split(sep)
new_words = []
for word in words:
if word[0].lower() in ['a', 'e', 'i', 'o', 'u']:
new_words.append(word + "way")
else:
new_words.append(word[1:] + word[0] + "ay")
finalstring = sep.join(new_words)
finalstring = finalstring + end
return finalstring
print simple_pig_latin("i like this")
# iway ikelay histay.
注意:
i
已经是字符串,则无需拨打str(i)
i
通常用于0
和n-1
之间的整数。不是为了单词。word[0]
是您的第一个字母word[k:]
word
没有第一个k
字母lower()
,以检查'I'
是否为元音。答案 1 :(得分:1)
对于您的问题,您可以将代码str(i) + "ay"
更改为i[1:] + i[0] + "ay"
分支中的elif
。