Код после continue исполняется
Задачка с codewars: https://www.codewars.com/kata/52d1bd3694d26f8d6e0000d3/train/python. Беру символ перед шифровкой, проверяю на /[!., ']/, если символ один из тех, что в регулярном выражении, добавляю в результат без шифровки, пропускаю остальные действия и иду к следующему символу. Следовательно строка "it's a shift cipher!" должна зашифроваться, но срабатывает следующее действие, которое пропускает шифрование, если символ не в алфавите. Я рассчитывал, что после continue код "if text[i] not in self.alphabet:" не должен сработать, если символ == /[!., ']/. Что упустил?
class VigenereCipher(object):
def __init__(self, key, alphabet):
key *= len(alphabet) // len(key) + 1
self.key = key
self.alphabet = alphabet
def encode(self, text):
result = ''
text = list(text)
for i in range(len(text)):
if text[i] == "/[!., ']/":
result += text[i]
continue # Вот этот момент из вопроса
if text[i] not in self.alphabet:
return "".join(text)
t = self.alphabet.index((text[i])) + self.alphabet.index(self.key[i])
if t >= len(self.alphabet):
t -= len(self.alphabet)
result += self.alphabet[t]
return result
alphabet = 'abcdefghijklmnopqrstuvwxyz'
key = 'password'
c = VigenereCipher(key, alphabet)
print(c.encode("it's a shift cipher!"))