@ArmBoy28
фотограф, студент информационной безопасности

Ошибка TypeError: 'int' object is not subscriptable в списке, как решить данную проблему?

Написал код для нахождения ключа в Шифре Вижинера, но выводит такую ошибку:

a = (text_char_code[i] - chiper_char_code[i]) % len(alpha1)
         ~~~~~~~~~~~~~~^^^
TypeError: 'int' object is not subscriptable

Как с этим можно справиться? Перепробовал несколько вариантов с присвоением типа переменной, но почему-то не выходит.

Вот исходный код:

alpha1 = list('абвгдеёжзийклмнопрстуфхцчшщъыьэюя')
text = 'имитостойкость'
cipher_text = 'щхыяяъеыъубюге'
key = " "

def get_key(text_char: str, i, cipher_char: str, alpha: list[str]) -> str:
  if text_char not in alpha1: # Находит незнакомый символ и оставляет как есть
    return text_char
  text_char_code = alpha1.index(text_char) # Находит символ открытого текста
  chiper_char_code = alpha1.index(cipher_char) # Находит символ зашифрованного текста
  for i in text_char:
    global a
    a = (text_char_code[i] - chiper_char_code[i]) % len(alpha1) #  Находит ключ


for i in range(len(text)):
  key = key + str(get_key(text[i], i, cipher_text[i], alpha= alpha1)) #сохраняет ключ
  print(key)
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Учись отладке, сделай перед строкой с ошибкой print(text_char_code) и помедитируй над выводом. Ну текст ошибки достаточно ясно описывает проблему, просто переведи его
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 250 000 ₽
Rinkel Москва
от 50 000 до 100 000 ₽
Wanted. Лимассол
До 6 000 €