Найти - Пользователи
Полная версия: Нужна помощь
Начало » Python для экспертов » Нужна помощь
1
Dark
Написать программу, которая осуществляет шифрование методом простой перестановки
vl
Ты пришёл по адресую щас…
vl
Ты пришёл по адресую щас…
vl
Чувак, просто дополни словарь,а то мне лень

 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)

vl
вообще лучше делать через регулярные методы(модуль re), но я что-то тупанул
Dark
Спасибо и на этом, а то голову сломал
doza_and
Dark
а то голову сломал
С такой помощью вам препод голову сломает. Это не тот метод что требуется.
vic57
 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))
>>>т Эотйекмт ыуыршфес
>>>Это шыфруемый текст
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB