基本翻译,将元音翻译成g

2024-09-29 23:31:51 发布

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

这个基本的python翻译代码应该将字母中的每个元音翻译成G,它可以将元音翻译成G,但只翻译2。如果我要写Ga,它会把它翻译成GG,但如果我输入Garbo,它只会把它翻译成GG。我做错了什么


def translate(phrase):
    translation = ""
    for letter in phrase:
        if letter in phrase == "Aeiou" or "aeiou":
            translation = translation + letter  + 'g'
        else:
          translation = translation + letter

    return translation


print(translate(input("Enter a phrase: ")))

Tags: 代码inforifdef字母translationtranslate
3条回答

根据您给定的代码片段,下面的代码可以满足您的需求

def translate(phrase):
    translation = ""
    for letter in phrase:
        if letter.lower() in "aeiou":
            translation = translation + "g"
        else:
            translation = translation + letter
    return translation

但是,如果您的要求只是将元音翻译(替换)为“g”,那么您可以使用正则表达式替换,而不是循环遍历每个字母

import re
def translate(phrase):
    translation = re.sub(r'[AEIOUaeiou]', "g", phrase)
    return translation

轻松修复,给你:

def translate(phrase):
    translation = ""
    for letter in phrase:
        if letter.lower() in "aeiou": #.lower() to turn letter into lowercase
            translation = translation + "g"
        else:
            translation = translation + letter
    return translation

这会将任何元音转换为小写字母g,如果您想要大写字母g,则将“g”替换为“g”

这是一个常见的错误。这是因为您未能检查第二个字符串"aeiou"的条件。or的第二个操作数不是布尔表达式,而是真实字符串。此外,第一个字符串必须是"AEIOU"

def translate(phrase):
    translation = ""
    for letter in phrase:
        if letter in "AEIOU " or  letter in "aeiou":
            translation = translation + 'g'
        else:
          translation = translation + letter

    return translation

相关问题 更多 >

    热门问题