Как проверить input(), равняется ли он элементам списка?
Собственно, пытаюсь написать мини-переводчик на Python, по приколу, и столкнулся с проблемкой. Я в питоне далеко не ас и не могу понять, как проверить input(), равняется ли он хотя бы одному элементу базы слов. Помогите пожалуйста. Вот кусочек кода с базой и инпутом, нужно дописать уже описанным образом check():
base_eng = ['Hi', 'Hello', 'Apple']
base_rus = ['Привет', 'Здравствуй', 'Яблоко']
word_rus = (str(input("Введите слово: ")))
def check():
UPD: Т.к. база маленькая, я бы мог сделать отдельные проверки на каждое слово, но это длинно и я собираюсь сделать базу больше.
Ответы (3 шт):
Я до конца вопрос не понял но возможно это то что тебе нужно:
def check():
if word_rus == "Hi":
print("Привет")
elif word_rus == "Hello":
print("Здраствуйте")
elif word_rus == "Apple":
print("Яблоко")
check()
Для проверки наличия в базе можно так:
base_eng = ['Hi', 'Hello', 'Apple']
base_rus = ['Привет', 'Здравствуй', 'Яблоко']
word_rus = (str(input("Введите слово: ")))
def check(bs_ru, bs_en, word):
if word in bs_ru:
print("Есть в base_rus")
elif word in bs_en:
print("Есть в base_en")
else:
print("Нет")
check(base_rus, base_eng, word_rus)
Только если хотите перевод то Надо либо подставлять аналогичные слова по индексу, или записать все данные в словари.
Немного странного кода но c функцией переводчика:
base_eng = ['Hi', 'Hello', 'Apple']
base_rus = ['Привет', 'Здравствуй', 'Яблоко']
word_rus = (str(input("Введите слово: ")))
def check(bs_ru, bs_en, word):
if word in bs_ru:
# При условии что индексы слов в base_eng и base_rus совпадают.
print(f"{word} переводится как {bs_en[bs_ru.index(word)]}")
else:
print("Нет")
check(base_rus, base_eng, word_rus)
translate = input("что перевести?")
translate = translate.split()
FILENAME = "trn.txt"
f = open(FILENAME, "r")
lines = f.readlines()
for line in lines:
line = line.split(";")
for word in translate:
if word == line[0]:
print(line[1])
f.close()
Нужно будет создать файл "trn" и написать там слово, а потом через ";" перевод.
Каждое слово и перевод на отдельной строке (можно написать много слов).
Когда запустите программу, то увидите сообщение "что перевести?". Напишите слово (если его не будет в файле, то перевода не будет) и увидите перевод.
Знаю, что это не оптимальный вариант, но в нем не надо писать какие-то списки прямо в коде, а это сокращает его.