程序在执行加密算法后在 python 中意外停止
Program stops unexpected in python after it does an encryption algorithm
所以我在python做了一个GUI和加密程序:
这是布局
layout=[[sg.Text('Enter message'),sg.Input(key='-IN-')],
[sg.Text('Cryptation key'),sg.Input(key='-KEY-')],
[sg.Text('Answer',key='-OUT-')],
[sg.Button('OK'), sg.Button('EXIT')]
]
这是 while 循环:
while True:
event, values=window.read()
if event is None or event == 'EXIT':
break
mesaj=str('-IN-').upper()
cheie=str('-KEY-').upper()
key=generate_key(mesaj,cheie)
encrypt_text=encrypt_vigenere(mesaj,key)
window['-OUT-'].update(values[encrypt_text])
window.close()
这是我认为是你问题的功能:
def encrypt_vigenere(message,key_word):
key = generate_key(message,key_word)
encrypted_text = ""
for i in range(0,len(message)):
if message[i] == " ":
encrypted_text += " "
else:
encryption_value = (alphabets.find(message[i]) + alphabets.find(key[i]))%26
encrypted_text += alphabets[encryption_value]
return encrypted_text
它给了我这个错误:
回溯(最近调用最后):
文件“C:/Users/flavius/Documents/python/games/urs_mina/main.py”,第 62 行,位于
window['-OUT-'].update(值[encrypt_text])
键错误:'YSRX'
每次我按 OK ti 都会显示上面的消息。有人可以向我解释为什么吗?
通过
在事件循环中获取元素sg.Input
的值
mesaj = values['-IN-'].upper()
cheie = values['-KEY-'].upper()
通过
更新元素sg.Output
的值
window['-OUT-'].update(encrypt_text)
window[key]
用于元素,values[key]
用于带有元素键的值字典。
如果函数 encrypt_vigenere
的参数错误,您也可能会得到错误的结果,IMO,这不是这里的问题。
所以我在python做了一个GUI和加密程序: 这是布局
layout=[[sg.Text('Enter message'),sg.Input(key='-IN-')],
[sg.Text('Cryptation key'),sg.Input(key='-KEY-')],
[sg.Text('Answer',key='-OUT-')],
[sg.Button('OK'), sg.Button('EXIT')]
]
这是 while 循环:
while True:
event, values=window.read()
if event is None or event == 'EXIT':
break
mesaj=str('-IN-').upper()
cheie=str('-KEY-').upper()
key=generate_key(mesaj,cheie)
encrypt_text=encrypt_vigenere(mesaj,key)
window['-OUT-'].update(values[encrypt_text])
window.close()
这是我认为是你问题的功能:
def encrypt_vigenere(message,key_word):
key = generate_key(message,key_word)
encrypted_text = ""
for i in range(0,len(message)):
if message[i] == " ":
encrypted_text += " "
else:
encryption_value = (alphabets.find(message[i]) + alphabets.find(key[i]))%26
encrypted_text += alphabets[encryption_value]
return encrypted_text
它给了我这个错误:
回溯(最近调用最后): 文件“C:/Users/flavius/Documents/python/games/urs_mina/main.py”,第 62 行,位于 window['-OUT-'].update(值[encrypt_text]) 键错误:'YSRX'
每次我按 OK ti 都会显示上面的消息。有人可以向我解释为什么吗?
通过
在事件循环中获取元素sg.Input
的值
mesaj = values['-IN-'].upper()
cheie = values['-KEY-'].upper()
通过
更新元素sg.Output
的值
window['-OUT-'].update(encrypt_text)
window[key]
用于元素,values[key]
用于带有元素键的值字典。
如果函数 encrypt_vigenere
的参数错误,您也可能会得到错误的结果,IMO,这不是这里的问题。