Появляется не та переменная при вводе текста в строчку (python)
Я делаю переводчик свой для определенных слов на питоне. Хочу чтобы при вводе слова, требующего перевода, появлялось уже переведенное слово, но это не переводчик с одного языка на другой, а можно сказать словарь для слэнговых слов.
from tkinter import *
from tkinter import ttk
root = Tk()
root.title('Переводчик')
root.geometry('500x300')
entry = ttk.Entry()
entry.pack(anchor=NW, padx=190, pady=10)
a =str(input)
b='Совершение покупки в видеоигре или в интернете'
c='Интернет-мошенничество'
d='Слово не найдено'
def change():
global a
if a=='Донат':
lab.config(text=b)
elif a=='Скам':
lab.config(text=c)
else:
lab.config(text=d)
btn = ttk.Button(text="Перевести", command = change)
btn.pack(anchor=NW, padx=210, pady=40)
lab=Label(width=60, height=50)
lab.pack()
root.mainloop()
Но при вводе слова из условия почему-то выдает другую переменную. Например, если я ввиду в строчку слово: 'Донат', то на экране должен появится перевод именно для этого слова, заданный переменной b, и отправится в (label), но появляется текст из условия else. Не могли бы вы подсказать что не так? Я полный чайник, поэтому прошу быть конструктивным и не язвить.
Ответы (2 шт):
В вашем коде вы используете переменную a для хранения строки, которую вводит пользователь, но в данный момент вы не используете ее для ничего. Вместо этого, вы используете глобальную переменную input, которая не связана ни с вводом пользователя, ни с функцией change().
Чтобы исправить это, вы должны использовать значение, введенное пользователем в текстовом поле entry, чтобы определить, какой перевод следует использовать. Вы можете использовать метод get() для получения значения из текстового поля, и использовать это значение для сравнения с значениями в условиях.
def change():
word = entry.get()
if word == 'Донат':
lab.config(text=b)
elif word == 'Скам':
lab.config(text=c)
else:
lab.config(text=d)
Так же важно заметить, что в вашем коде нету команды для отображения результа дальше,следующим шагом будет добавление команды для отображения результата перевода. Например, вы можете использовать метод config() для обновления текста в элементе Label с использованием переведенного слова.
lab.config(text=b)
После этого при нажатии на кнопку "Перевести" введенное слово будет переведено и отображено на экране.
from tkinter import *
from tkinter import ttk
root = Tk()
root.title('Переводчик')
root.geometry('500x300')
entry = ttk.Entry()
entry.pack(anchor=NW, padx=190, pady=10)
b='Совершение покупки в видеоигре или в интернете'
c='Интернет-мошенничество'
d='Слово не найдено'
def change():
a = entry.get()
if a=='Донат':
lab.config(text=b)
elif a=='Скам':
lab.config(text=c)
else:
lab.config(text=d)
btn = ttk.Button(text="Перевести", command = change)
btn.pack(anchor=NW, padx=210, pady=40)
lab=Label(width=60, height=50)
lab.pack()
root.mainloop()