Нужно правильно записать условие, чтобы слова которые я ввожу, проверялись в словарях и выводились соответственно

from tkinter import *
from tkinter import messagebox as mb
 
def __init__():
    a = entry1.get()
    # digits.get(a)
    entry2.delete(0, END)
    lst = a.split()
    if len(lst) == 1:
        __proverka__()

        summ1 = sotn.get(lst[0])
        summ2 = edin.get(lst[1])
        summ = summ1+summ2
        entry2.insert(0,summ)
        
    
def __proverka__():
    summ1 = sotn.get(lst[0])
    if summ1 != lst[0]:
        summ1 = des.get(lst[0])
    elif summ1 != des.get(lst[0]):
        summ1 != lst[0]
    else:
        summ1 = edin.get(lst[0])
        
 
root = Tk()
root.geometry('300x300')
root.configure(bg="Plum")
#root.resizable(0, 0)
 
label1 = Label(text='Введите ваше число:', width=20, bg="#ffccff")
label2 = Label(text='Вот ваше число:', width=20, bg="#ffccff")
entry1 = Entry(width=20, bg="#7B68EE")
entry2 = Entry(width=20, bg="#7B68EE")
button1 = Button(text='Нажми сюда', command=__init__, bg="#ffccff")
 
 
label1.grid(row=0, sticky=E)
label2.grid(row=2, sticky=E)
entry1.grid(row=0, column=2)
entry2.grid(row=2, column=2)
button1.grid(row=1, column=2, sticky=E)
 
 
edin = {'ноль': 0,'один': 1, 'два': 2, 'три': 3, 'четыре': 4,'пять': 5,'шесть': 6,'семь': 7, 'восемь': 8, 'девять': 9, 'десять': 10, 'одинадцать': 11,'двенадцать': 12,'тринадцать': 13,'четырнадцать': 14, 'пятьнадцать': 15, 'шестнадцать': 16, 'семнадцать': 17, 'восемнадцать': 18,'девятнадцать': 19}
des = {'десять': 10,'двадцать': 20,'тридцать': 30,'сорок': 40,'пятьдесят': 50,'шестьдесят': 60,'семьдесят': 70,'восемьдесят': 80,'девяносто': 90,}
sotn = {'сто': 100,'двести': 200,'триста': 300,'четыресто': 400,'пятьсот': 500,'шестьсот': 600,'семьсот': 700,'восемьсот': 800,'девятьсот': 900,}


Ответы (2 шт):

Автор решения: Іван Шнір

Вот ваш код с исправленной ошибкой, но там ещё кучу багов:

# -- coding: cp1251 --
from tkinter import *
from tkinter import messagebox as mb

lst = []
edin = {'ноль': 0,'один': 1, 'два': 2, 'три': 3, 'четыре': 4,'пять':5,'шесть':6,'семь':7,
          'восемь': 8, 'девять': 9, 'десять': 10, 'одинадцать': 11,'двенадцать':12,'тринадцать':13,'четырнадцать':14,
          'пятьнадцать': 15, 'шестнадцать': 16, 'семнадцать': 17, 'восемнадцать': 18,'девятнадцать':19}


des = {'десять':10,'двадцать':20,'тридцать':30,'сорок':40,'пятьдесят':50,'шестьдесят':60,'семьдесят':70,'восемьдесят':80,'девяносто':90}



sotn = {'сто': 100,'двести':200,'триста':300,'четыресто':400,'пятьсот':500,'шестьсот':600,'семьсот':700,'восемьсот':800,'девятьсот':900}

def __init__():
    a = entry1.get()
    #digits.get(a)
    entry2.delete(0,END)
    global lst
    lst = a.split()
    print(lst)
    if len(lst)==1:
        __proverka__()




        
        summ1 = sotn.get(lst[0])
        summ2 = edin.get(lst[0])
        if summ1 == None:
            summ = summ2
        elif summ2 == None:
            summ = summ1
        else:
            summ = str(summ1)+str(summ2)
        entry2.insert(0,summ)
        
    
def __proverka__():
    global lst
    print('proverka')
    summ1 = sotn.get(lst[0])
    if summ1 != lst[0]:
        summ1 = des.get(lst[0])
    elif summ1 != des.get(lst[0]):
        summ1 != lst[0]
    else:
        summ1 = edin.get(lst[0])
        
 
 
root = Tk()
root.geometry('300x300')
root.configure(bg="Plum")
#root.resizable(0,0)
label1 = Label(text='Введите ваше число:',width=20,bg="#ffccff")
label2 = Label(text='Вот ваше число:',width=20,bg="#ffccff")
entry1 = Entry(width=20,bg="#7B68EE")
entry2 = Entry(width=20,bg="#7B68EE")
button1 = Button(text='Нажми сюда',command=__init__,bg="#ffccff")
 
 
 
 
label1.grid(row=0, sticky=E)
label2.grid(row=2, sticky=E)
entry1.grid(row=0, column = 2)
entry2.grid(row=2,column= 2)
button1.grid(row=1, column=2, sticky=E)
root.mainloop()
 


→ Ссылка
Автор решения: Jack_oS

Если я правильно понял, вы тут пытаетесь выводить числа в словарном представлении?
Можно же ж пользоваться наработками python сообщества и не придумывать велосипеды ;) Использовать тот же num2words, например:

>>> from num2words import num2words

>>> num2words(123)
'one hundred and twenty-three'

>>> num2words(100500, lang='ru')
'сто тысяч пятьсот'

>>> num2words(42, lang='ru')
'сорок два'

>>> num2words(-42, lang='ru')
'минус сорок два'

>>> num2words(-42.13, lang='ru')
'минус сорок два запятая тринадцать'
→ Ссылка