Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 23, 2017 13:41:04

Dark
Зарегистрирован: 2017-10-28
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь

Написать программу, которая осуществляет шифрование методом простой перестановки

Офлайн

#2 Дек. 23, 2017 15:12:51

vl
Зарегистрирован: 2017-08-21
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь

Ты пришёл по адресую щас…

Офлайн

#3 Дек. 23, 2017 15:12:52

vl
Зарегистрирован: 2017-08-21
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь

Ты пришёл по адресую щас…

Офлайн

#4 Дек. 23, 2017 15:15:05

vl
Зарегистрирован: 2017-08-21
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь

Чувак, просто дополни словарь,а то мне лень

 p={
	"a":"g","b":"o","c":"r","d":"j",
	"e":"u","f":"y","g":"i","h":"w"," ":"mi"
}
#В КЛАССЫ ВСЁ!!!!!!!!#######
#Подробности в classfunc.txt
word=""
crypt=""#закодированное слово
i=0
Entery=None
l="=====I doing this====="
def wordza(word,crypt,i):#шифровальщик
 while True:
  word=''
  crypt=''
  word=input()
  if word=="@stop":
      Enter(Entery,l)
  elif word=='@des':
   crypting(word,crypt,i)
  else:
   for i in range(len(word)):
    for key in p: #проверка если нет ключа
        if not word[i] in p:
            print('\nЯ не могу перевести этот символ: ',word[i],'\n') 
            Enter(Entery, l)
    crypt+=p[word[i]]
    i+=1
   print(crypt)
   
def crypting(word,crypt,i):#Разшивровальщик
 while True:
  crypt=""
  word=""
  crypt=input()
  if crypt=='@stop':
   Enter(Entery,l)
  elif crypt=="@enc":
   wordza(word,crypt,i)
  else:
   for i in range(len(crypt)):
    for key in p:
     if p[key]==crypt[i]:
      word+=key
   print(word)
def Enter(Entery,l):#выбор.если что убрать
 print("What you want?\n1.Encrypt\n_or_\n2.Desphire\nPlease,input your num:")
 Entery=input()
 if Entery=="1":#определение выбора
  print("You choose the Encrypt\n",l)
  wordza(word,crypt,i)
 elif Entery=="2":
   print("You choose the Desphire\n",l)
   crypting(word,crypt,i)
 elif Entery=='quit':
  quit()
 else:
    print("Your input:",Entery,"\nIm sorry, I dont have other function.\n\n")
    Enter(Entery,l)
Enter(Entery,l)

Офлайн

#5 Дек. 23, 2017 15:16:34

vl
Зарегистрирован: 2017-08-21
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь

вообще лучше делать через регулярные методы(модуль re), но я что-то тупанул

Офлайн

#6 Дек. 23, 2017 15:27:32

Dark
Зарегистрирован: 2017-10-28
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь

Спасибо и на этом, а то голову сломал

Офлайн

#7 Дек. 23, 2017 16:00:23

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Нужна помощь

Dark
а то голову сломал
С такой помощью вам препод голову сломает. Это не тот метод что требуется.



Офлайн

#8 Дек. 23, 2017 16:20:17

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Нужна помощь

 from random import seed,sample
def crypto(s,key):
    ln = len(s)
    seed(key)
    smpl = sample(range(ln),ln)
    out = ''
    for i in smpl:
        out += s[i]
    return out
def encrypto(s,key):
    ln = len(s)
    seed(key)
    out = ['']*ln
    smpl = sample(range(ln),ln)
    for ch,i in zip(s,smpl):
        out[i] = ch
    return ''.join(out)
s = (crypto('Это шыфруемый текст',1234))
print(s)
print(encrypto(s,1234))
>>>т Эотйекмт ыуыршфес
>>>Это шыфруемый текст

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version