Базовый Python Vigenere Cypher

У меня есть базовый код, проблема в том, что я не знаю, как правильно использовать длину ключевого слова.

Когда я запускаю задачу, я просто получаю кучу S в качестве вывода, потому что код не переходит к следующей букве ключевого слова.

Мне нужна помощь в части Def Encrypt (вторая def)

Ключевое слово СЕКРЕТНО // Это ввод

def encrypt_letter(text_letter , code_letter):
alphabet = string.ascii_uppercase
index = alphabet.find(code_letter)
cypher = alphabet[index:]+alphabet[:index]
index2 = alphabet.find(text_letter.upper())
result = cypher[index2]
if text_letter.islower():
    result = result.lower()
return result

def encrypt(text, code):  
  cypher_text = ''
  for letter in text:
    if letter.isalpha():
        cypher_text += code_word[0:1:6] 
       # code_letter = ?
       # encrypt_letter(letter, )
    else:
        cypher_text += letter
  return cypher_text

code_word = input('Please enter the code word: ')
code_word = code_word.upper()

cypher_text = encrypt(plain_text, code_word)

print(cypher_text)
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
412
1

Ответы 1

Поскольку это явно задача студента, поработайте над ней еще немного и вернитесь, чтобы задать конкретный вопрос, но несколько советов:

  1. Инициализируйте счетчик, чтобы подсчитать, сколько букв .isalpha() вы встретили
  2. Используйте counter % len(secret_code), чтобы отслеживать свое текущее положение в секретном коде.
  3. Используйте целочисленную арифметику ASCII и некоторую логику if/else для изменения символов в cypher_text с помощью counter % len(secret_code)
  4. ord() и chr() вам помогут

Если вы действительно застряли и хотите найти решение, мое здесь: https://github.com/bennett39/learning-exercises/blob/master/cs50/pset6/vigenere/vigenere.py

Тем не менее, потратьте немного больше времени на свое решение, прежде чем переходить по этой ссылке.

Другие вопросы по теме