Я пытаюсь создать программу caesar cipher, используя tkinter, когда я пытаюсь преобразовать запись от пользователя из строки в Int, я получаю эту ошибку: AttributeError: объект str 'не имеет атрибута' _root '. Я уже пробовал использовать 'stextentry = int (stextentry)', и я знаю, что это работает, но мне нужно использовать другую версию этой строки кода для этого скрипта для работы над другой программой. Я не знаю, как избавиться от ошибки, поэтому я надеюсь, что кто-то может мне помочь, кстати, это не домашнее задание, и это не имеет ничего общего со школой.AttributeError: объект 'str' не имеет атрибута '_root'
from tkinter import *
def Encryption():
ptextentry = ptext.get()
stextentry = stext.get()
stextentry = IntVar(stextentry)# <------------------- Error is here
alpha = "abcdefghijklmnopqrstuvwxyz"
cipher = " "
for c in ptextentry:
if c in alpha:
cipher += alpha[(alpha.index(c)+stextentry) % (len(alpha))]
print (cipher)
global P_Text_E, P_Text_L, S_K_L, S_K_E, plain_text, cctk
cctk = Tk()
ptext = StringVar()
stext = StringVar()
P_Text_L = Label(cctk, text="Enter plain text:").grid(row=0, column=0)
P_Text_E = Entry(cctk, textvariable=ptext).grid(row=0, column=1)
S_K_L = Label(cctk, text="Enter shift key:").grid(row=1, column=0)
S_K_E = Entry(cctk, textvariable=stext).grid(row=1, column=1)
Encrypt_B = Button(cctk, text="Encrypt plain text", command = Encryption).grid(row=2, columnspan =3)
Exit_cctk_B = Button(cctk, text="Exit").grid(row=3, columnspan =3)
cctk.title("Caesar Cipher Program")
cctk.mainloop()**
'global' не создает глобальных переменных. Все переменные, созданные за пределами функций/классов автоматически, являются глобальными. Вы используете функцию 'global' внутри, чтобы сообщить функции, что вы хотите использовать внешнюю переменную вместо создания локальной переменной. – furas