把一个字符串翻译成“强盗的语言”

2024-09-27 07:29:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为即将到来的实用编程测试练习,所以一直在网上浏览示例,并遇到了这个问题

“编写一个函数translate(),该函数将文本翻译成“rövarspråket”(瑞典语“强盗语言”)。也就是说,将每个辅音加倍,并在中间加上“o”。例如,translate(“this is fun”)应该返回字符串“tothohisos isos fofunon”。在

我不知道为什么,但我一直在努力。很简单,但我现在很困难。这是我尝试过的

def translate(n):
    consonant="bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ"
    for letters in n:
        if letters in consonant:
            return (letters+"O"+letters)
        else:
            return("Vowel")

对不起,如果我的编码是超级业余的。只是想学习一下:/


Tags: 函数in文本语言示例return编程this
3条回答
consonants = set("bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ")
original_string = "this is fun"
translated = ''.join(map(lambda x: x+"0"+x if x in consonants else x,original_string)
print translated

是我做这件事的一种方式。。。这只是将每个字母映射到字母+0+如果它是辅音,然后加入结果列表

return是函数的结尾。句号。你只能退一件东西。因此,您需要在循环中累积一些值,然后在循环的末尾return。如果你想修改你现有的代码,那就交给你吧。在

你的思维方式-最初返回一个事物,保持状态,然后从那里继续下一个循环,实际上是生成器的工作方式:

def translate(n):
    consonants = set("bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ")
    for letter in n:
        if letter in consonants:
            yield '{}o{}'.format(letter,letter)
        else:
            yield letter

''.join(translate('this is fun'))
Out[44]: 'tothohisos isos fofunon'

刷了一些东西,但你的代码的核心在那里。在

所以。。。是 啊。写了这篇文章,我不知道你在找什么答案。如果你在寻找其他写作方法,我可能会这样做:

^{pr2}$
    mytext = 'thisisfun'
consonants = 'bcdfghjklmnpqrstuvwxyz'
newtext = []
def translate(mytext):
    for i in mytext:
        if i not in consonants:
            newtext.append(i)
        else:
            newtext.append(i)
            newtext.append('o')
            newtext.append(i)
    print(newtext)

translate(mytext)

它现在以列表的形式显示结果,只是想办法让它回到字符串中。。。如果你有任何疑问,它的工作,我现在可以。。。还有更优雅的方法可以做,我现在正在努力——你至少给了我10分钟的时间来做一些事情!在

相关问题 更多 >

    热门问题