Helpers - компьютеры, интернет, программирование

Как ввести более одного слова для перевода в Python?

Я пытаюсь сделать глупую игру-переводчик в качестве практики. Я заменяю «Бен» на «Идиот», но это работает только тогда, когда я ввожу только одно слово «Бен». Если я ввожу «Привет, Бен», консоль выводит пустой оператор. Я пытаюсь получить "Привет, идиот". Или если я ввожу "Привет, Бен!" Я бы хотел получить "Привет, идиот!". Если я ввожу «Бен», он преобразуется в «Идиот», но только тогда, когда вводится само имя.

Я использую Python 3 и использую функцию def translate(word): так что, возможно, я слишком усложняю процесс.

def translate(word):
translation = ""
if word == "Ben":
    translation = translation + "Idiot"

return translation


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

Извините, если я объяснил все это странно. Совершенно новый для кодирования и использования этого сайта! Оцените всю помощь!


  • Ответ уже дан, поэтому я просто хочу добавить, что ваша текущая проверка работает только в том случае, если Ben является единственной строкой, введенной в консоль. Вы можете предпочесть if "Ben" in word, если хотите проверить, есть ли Ben во фразе, введенной пользователем. 17.06.2019

Ответы:


1

используйте для этого функцию str.replace():

sentence = "Hi there Ben!"
sentence=sentence.replace("Ben","Idiot")
Output: Hi there Idiot!
#str.replace() is case sensitive 
17.06.2019

2

Сначала вы должны разбить строку на слова:

s.split()

Но эта функция, разбивающая строку на слова по white spaces, недостаточно хороша!

s = "Hello Ben!"
print(s.split())

Out: ["Hello", "Ben!"]

В этом примере вы не сможете легко найти «Бена». Мы используем re в этом случае:

re.split('[^a-zA-Z]', word)

Out: ["Hello", "Ben", ""]

Но, мы пропустили "!", меняем его:

re.split('([^a-zA-Z])', word)

Out: ['Hello', ' ', 'Ben', '!', '']

и наконец:

импортировать повторно

def translate(word):
    words_list = re.split('([^a-zA-Z])', word)
    translation = ""
    for item in words_list:
        if item == "Ben":
            translation += "Idiot"
        else:
            translation += item

    return translation


print(translate("Hello Ben! Benchmark is ok!"))

P.S:

Если мы используем replace, у нас будет неправильный ответ!

"Hello Ben! Benchmark is ok!".replace("Ben", "Idiot")

Out: Hello Idiot! Idiotchmark is ok!
17.06.2019
Новые материалы

Интуитивное понимание тензоров в машинном обучении
Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

Почему объяснимость так важна прямо сейчас?
По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

Анимированный математический анализ
Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

Создание простого слайдера изображений с помощью JavaScript
Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

Создание базы данных с помощью супергероя «Python»
В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

ИИ для чайников: руководство для начинающих по пониманию будущего технологий
Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..