Появляется не та переменная при вводе текста в строчку (python)

Рейтинг: 0Ответов: 2Опубликовано: 21.01.2023

Я делаю переводчик свой для определенных слов на питоне. Хочу чтобы при вводе слова, требующего перевода, появлялось уже переведенное слово, но это не переводчик с одного языка на другой, а можно сказать словарь для слэнговых слов.

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. Не могли бы вы подсказать что не так? Я полный чайник, поэтому прошу быть конструктивным и не язвить.

Ответы

▲ 0Принят

В вашем коде вы используете переменную 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)

После этого при нажатии на кнопку "Перевести" введенное слово будет переведено и отображено на экране.

▲ 0
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()