Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 16, 2014 11:38:46

Kristofer1373
Зарегистрирован: 2014-12-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

HELP! шифр Гронсфельда

Написана программка по шифру Гронсфельда, каждую строку необходимо описать и пояснить, что в ней происходит и используется. Особенно важны два блока: шифрование и дешифрование текста. Прошу помощи!!!

#!/usr/bin/env python
#-*- coding: utf8 -*-
from Tkinter import *
from tkFileDialog import *
from random import randint


class App(object):
def __init__(self):
self.key = [3, 1, 4, 1, 5]
self.root = Tk()
self.btn_open = Button(self.root, command=self.open_file, text = 'Open')
self.btn_open.pack()
self.txt = Text(self.root)
self.txt.pack()
self.btn_enc = Button(self.root, command=self.encode, text = 'Encode')
self.btn_enc.pack()
self.btn_dec = Button(self.root, command=self.decode, text = 'Decode')
self.btn_dec.pack()

def open_file(self):
self.txt.delete('1.0',END)
self.txt.insert(INSERT, askopenfile().read())

def encode(self):
indata=self.txt.get('1.0',END)
outdata = ''
if len(indata)>0 and indata[-1]=='\n':
indata = indata[:-1]

i = 0
for sym in indata:
if sym>='A' and sym<='Z':
outdata+=chr(((ord(sym)-ord('A'))+self.key[i])%(ord('Z')-ord('A')+1)+ord('A'))
elif sym>='a' and sym<='z':
outdata+=chr(((ord(sym)-ord('a'))+self.key[i])%(ord('z')-ord('a')+1)+ord('a'))
else:
outdata += sym
i += 1
if i == len(self.key):
i = 0
self.txt.delete('1.0',END)
self.txt.insert(INSERT, outdata)

def decode(self):
indata=self.txt.get('1.0',END)
outdata = ''
if len(indata)>0 and indata[-1]=='\n':
indata = indata[:-1]

i = 0
for sym in indata:
if sym>='A' and sym<='Z':
outdata+=chr(((ord(sym)-ord('A'))-self.key[i])%(ord('Z')-ord('A')+1)+ord('A'))
elif sym>='a' and sym<='z':
outdata+=chr(((ord(sym)-ord('a'))-self.key[i])%(ord('z')-ord('a')+1)+ord('a'))
else:
outdata += sym
i += 1
if i == len(self.key):
i = 0
self.txt.delete('1.0',END)
self.txt.insert(INSERT, outdata)

def on_execute(self):
self.root.mainloop()

if __name__ == '__main__':
app = App()
app.on_execute()

Отредактировано Kristofer1373 (Дек. 16, 2014 20:10:13)

Офлайн

#2 Дек. 16, 2014 20:03:08

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

HELP! шифр Гронсфельда

ну для начала вставьте код нормально, на панели инструментов, где вы вводите текст, слева от смайлика наведите на листочек и выберите Python и потом вставляйте код!



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Дек. 16, 2014 20:10:31

Kristofer1373
Зарегистрирован: 2014-12-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

HELP! шифр Гронсфельда

terabayt
ну для начала вставьте код нормально, на панели инструментов, где вы вводите текст, слева от смайлика наведите на листочек и выберите Python и потом вставляйте код!
сделано

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version