【发布时间】:2015-04-15 13:32:59
【问题描述】:
我刚刚用 Python 编写了一个程序。该程序执行以下操作:
有一个类叫做 original。它有 2 个方法(init 的一部分)。第一种方法是代码。 “代码”所做的是接收一个字符串并将其编码,将接收到的字符串中的每个字符更改为 ASCII 表的另一个字符。这个 ASCII 字符取决于函数genracion_clave。函数genracion_clave 随机生成一个介于1 和k 之间的数字(k 是该函数的输入参数)。
例如,字符“e”在 ASCII 表的第 101 位。因此,如果生成的数字是 8,则字符 e 将更改为 ASCII 表中位置为 109 (101 + 8) 的字符
decode方法接收编码后的字符串和clave,返回解码后的字符串。
我想做的是在程序中添加一个图形界面,其中包含:
一个原始字符串的输入框,一个画布(或输出框?),我们将在其中显示编码和解码的字符串,一个用于编码的按钮和一个用于解码的按钮。
我是 Python 的新手,我已经阅读了一些关于 Tkinter 的教程,但我觉得这并不容易。所以我会很感激任何帮助:)
from random import randint
class original():
def __init__(self, mensaje_original):
self.mensaje_original = mensaje_original
def code(self, gen_clav, *args):
cadena_codificada =""
clave = gen_clav(*args)
for i in self.mensaje_original:
clave_mod = ord(i) + clave
if clave_mod > 255:
clave_mod = clave_mod - 255
cadena_codificada = cadena_codificada + chr(clave_mod)
return cadena_codificada, clave
def decode(self, cadena_cod_clave):
cadena_decodificada =""
clave = int(cadena_cod_clave[1])
for i in cadena_cod_clave[0]:
clave_mod = ord(i) - clave
if clave_mod > 255:
clave_mod = clave_mod - 255
cadena_decodificada = cadena_decodificada + chr(clave_mod)
return cadena_decodificada, cadena_cod_clave[1]
def generacion_clave(k):
cl = randint(1, k + 1)
return cl
mensaje_original = "Hola tio como estas"
mensaje = original(mensaje_original)
cad_cod_clav = mensaje.code(generacion_clave, 10)
cad_dec_clav = mensaje.decode(cad_cod_clav)
print "La cadena original es: %s" %cad_dec_clav[0]
print "La cadena cifrada es: %s" %cad_cod_clav[0]
print "la clave es: %d " %cad_cod_clav[1]
提前非常感谢! 巴勃罗
【问题讨论】:
标签: python string python-2.7 tkinter tkinter-canvas