JES Cipher убирает пробелы и знаки препинания - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть следующий код с выводом ниже.Мне было интересно, как мне изменить код, чтобы получить ответ, в котором нет z s.Другими словами, мне нужно, чтобы он игнорировал пробелы / пробелы и знаки препинания, чтобы конечный результат был sdfqfqeshqs.

def buildCipher(key):
 alpha = "abcdefghijklmnopqrstuvwxyz"
 rest = ""
 for letter in alpha:
  if not (letter in key):
   rest = rest + letter
 print key + rest

def encode2(string, alpha2):
 alpha = "abcdefghijklmnopqrstuvwxyz"
 secret = ""
 for letter in string:
  index = alpha.find(letter)
  secret = secret+alpha2[index]
 print secret

buildCipher("earth") приводит к earthbcdfgijklmnopqsuvwxyz.

encode2('this is a test', "earthbcdfgijklmnopqsuvwxyz") приводит к sdfqzfqzezshqs

1 Ответ

0 голосов
/ 21 сентября 2018

alpha.find(letter) возвращает -1, если letter не в alphaalpha2[-1] - последняя буква в alpha2.Так что вам просто нужно пропустить эту букву, если она имеет индекс -1.Как это:

def encode2(string, alpha2):
    alpha = "abcdefghijklmnopqrstuvwxyz"
    secret = ""
    for letter in string:
        index = alpha.find(letter)
        if index != -1:
            secret = secret + alpha2[index]
    print secret
...