Basi c переводчик, который переводит гласную на ag - PullRequest
0 голосов
/ 20 июня 2020

Этот базовый c 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: ")))

Ответы [ 3 ]

2 голосов
/ 20 июня 2020

простое исправление, здесь вы go:

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»

2 голосов
/ 20 июня 2020

Согласно вашему фрагменту кода, приведенный ниже код будет работать, чтобы удовлетворить ваши требования.

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
1 голос
/ 20 июня 2020

Это частая ошибка. Это потому, что вы не проверили условие для второй строки "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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...