import re
def translate(text: str) -> str:
return ' '.join([translate_word(w) for w in text.split()])
VOWELS = 'a|e|i|o|u'
CONSONANTS = f'[^{VOWELS}]'
def translate_word(word: str) -> str:
parts = re.split(rf'({VOWELS}|{CONSONANTS}*qu|xr|y)', word)
parts = [w for w in parts if w]
if not (
re.match(rf'^{VOWELS}|xr', parts[0]) or
(parts[0] == 'y' and re.match(rf'^{CONSONANTS}', parts[1]))
):
fst = parts.pop(0)
parts.append(fst)
parts.append('ay')
return ''.join(parts)
3条答案
按热度按时间iq0todco1#
只需要在print语句中进行连接的地方打印pig字符串。
kx5bkwkv2#
你的代码已经实现了你正在寻找的东西。python中的字符串连接不会在字符串之间添加空格。如果给予'allighty'并输出变量pig,它将输出almightyay。
在这里查看更多Python字符串连接的示例:https://www.w3schools.com/python/gloss_python_string_concatenation.asp
7uhlpewt3#
我想你的代码应该不止一个单词。这里有一个将输入转换为Pig Latin的程序。最好通过运行各种输入并检查
translate_word
函数中parts
的值来理解。链接到重新拆分