我需要一个Python程序转换为Pig拉丁语输入句子有2条规则:
1.如果一个单词以一个辅音开头,则第一个元音之前的所有辅音都移到单词的末尾,然后在末尾添加字母“ay”。例如,“coin”变成“oincay”,“flute”变成“uteflay”。
1.如果一个单词以元音开头,那么“yay”就加在结尾。例如,“egg”变成“eggyay”,“oak”变成“oakyay”。
到目前为止,我已经编写了以下程序:
string = input('String: ')
if string[0].upper() in 'BCDFGJKLMNPQSTVXZHRWY':
print(string.replace(string[0],'') + string[0]+'ay')
if string[0].upper() in 'AEIOUY':
print(string + 'yay')
#vowels = [each for each in
但这只适用于一个单词(而我需要整个句子),第一部分只替换第一个辅音,而不是全部(而我需要替换第一个元音之前的所有辅音)
3条答案
按热度按时间thigvfpy1#
您的输入获取了用户输入,但是string[0]只引用了字符串中的第一个字符。您需要使用.split()方法将字符串拆分为单词并循环遍历这些单词。但是,现在您完成了这一操作,您希望将其打印到1行中。因此,请将print中的end参数更改为类似空格的内容。
请尝试以下操作:
我修改了变量名以使其清晰。希望这对你有帮助!
blpfk2vs2#
我们可以尝试使用带有回调函数的正则表达式替换:
vkc1a9a23#
你需要找到第一个元音,然后根据它是否在第一个字符(0索引)之后,采用大小写1或2。
输出:
你也可以插入
xkcd
。我想你会想要xkcday
。整个句子应该可以用。