С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501

IndexError: string index out of range

09.09.2019, 19:15. Показов 1347. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
def decodeXor(cypherString, key):
    plainText = ''
    cypherArray = []
    i = 0
    for i in range(0, len(cypherString), 2):
        cypherArray.append(cypherString[i] + cypherString[i + 1])
    for i in range(0, len(cypherArray), 1):
        hex = cypherArray[i]
        dec = int(hex, 16)
        keyPointer = i % len(key)
        asciiCode = dec ^ ord(key[keyPointer])
        plainText += chr(asciiCode)
    return plainText
т.е. у меня строка около 300 символов шифрованная, а то и еще больше, если я пишу так:
Получение строк с сайта: services = requests.get(...');
Разделение текста на строки Services = Services.text.split('\n')
Decoded = decodeXor(Services[1],Token);
и тут пишет ошибку

Traceback (most recent call last):
File "", line 52, in <module>
decoded = decodeXor(Services[1],Token)
File "", line 32, in decodeXor
cypherArray.append(cypherString[i] + cypherString[i + 1])
IndexError: string index out of range

Но если я вручную вписываю строку и ключ decoded('123123123123123','1231231') и тд, но все расшифровывается нормально, без ошибок, как-то можно пофиксить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2019, 19:15
Ответы с готовыми решениями:

IndexError: string index out of range
class TicTacToeBoard: def __init__(self): self.set = , , ] self.count = 0 def new_game(self): ...

IndexError: string index out of range
Помогите найти ошибку в коде... Traceback (most recent call last): File &quot;jailed_code&quot;, line 37, in &lt;module&gt; p =...

IndexError: string index out of range
a = str(input()) b = int(input()) if b &lt;= len(a): print(a) else: print(&quot;ОШИБКА&quot;) Ввод: привет -100

16
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
09.09.2019, 19:42
Python
1
2
    for i in range(0, len(cypherString), 2):
        cypherArray.append(cypherString[i] + cypherString[i + 1])
Когда так делаешь, в любом случае подозрительно, что i+1 вылетит за пределы. Но тут даже можно додумать, когда вылетает.
0
7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501
09.09.2019, 20:01  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Когда так делаешь, в любом случае подозрительно, что i+1 вылетит за пределы. Но тут даже можно додумать, когда вылетает.
да это понятно, просто не понятно почему он не вылетает, когда строки руками пишешь и как пофиксить это, подскажи если можешь, был бы очень признателен
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
09.09.2019, 20:29
Цитата Сообщение от Valimer Посмотреть сообщение
да это понятно, просто не понятно


Цитата Сообщение от Valimer Посмотреть сообщение
почему он не вылетает, когда строки руками пишешь
даже никаких преположений? а если подумать про четное и нечетное количество букв и еще раз внимательно посмотреть на вот это (важные моменты выделены)
Цитата Сообщение от Valimer Посмотреть сообщение
for i in range(0, len(cypherString), 2):
* * * * cypherArray.append(cypherString[i] + cypherString[i + 1])
Добавлено через 1 минуту
возьми листочек бумаги и реши как этот цикл отработает на строке из 2 букв, а потом из 3...
0
7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501
09.09.2019, 20:48  [ТС]
хм, просто эту функцию мне пришлось конвертировать из Delphi, там она выглядит именно так, да и то мне помогали тут на форуме

Добавлено через 1 минуту
да и потом раньше таких проблем не было
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
09.09.2019, 20:49

Не по теме:

Valimer, эх, Дельфи, молодость...

не надо ничего конвертировать, подумай что должно происходить и напиши
0
7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501
09.09.2019, 20:49  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
даже никаких преположений? а если подумать про четное и нечетное количество букв и еще раз внимательно посмотреть на вот это (важные моменты выделены)
так, а какая разница?
что написать "123123123123" И k="123123123123", только в 1 случае работает
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
09.09.2019, 20:49
Цитата Сообщение от Valimer Посмотреть сообщение
да и потом раньше таких проблем не было
четная дина строки, нечетная длина...
0
7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501
09.09.2019, 20:50  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
не надо ничего конвертировать, подумай что должно происходить и напиши
XOR decode, расшифровка ключа, шифрованного в XOR, для pythona данной ф-ии не нашел и пришлось переписывать от delphi
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
09.09.2019, 20:50
Цитата Сообщение от Valimer Посмотреть сообщение
так, а какая разница?
разница в тм что в одном случае работает а в другом нет
0
7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501
09.09.2019, 20:53  [ТС]
нужно расшифрование текста в XOR, не Hex

Добавлено через 32 секунды
Цитата Сообщение от Welemir1 Посмотреть сообщение
разница в тм что в одном случае работает а в другом нет
в этом и вопрос - ПОЧЕМУ? кол-во символов одинаковое
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
09.09.2019, 20:55
Valimer, ну так исправь цикл и радуйся жизни

Добавлено через 1 минуту
Цитата Сообщение от Valimer Посмотреть сообщение
в этом и вопрос - ПОЧЕМУ? кол-во символов одинаковое
не знаю о чем ты, воспользуйся дебагером и смотри что там за значения. Если ошибка та же, то и причина там же.
0
7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501
09.09.2019, 20:55  [ТС]
исправил, однако не работает

def decodeXor(cypherString, key):
plainText = ''
cypherArray = []
i = 0
for i in range(0, len(cypherString), 1):
cypherArray.append(cypherString[i] + cypherString[i + 1])
for i in range(0, len(cypherArray), 1):
hex = cypherArray[i]
dec = int(hex, 16)
keyPointer = i % len(key)
asciiCode = dec ^ ord(key[keyPointer])
plainText += chr(asciiCode)
return plainText
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
09.09.2019, 20:58
Цитата Сообщение от Valimer Посмотреть сообщение
исправил, однако не работает
не исправил, проверять надо так -вот этот твой "исправленный" цикл проверяй дебаггером или просто на листочке
вот как ты думаешь -дошел ты до последнего элемента в строке и потом такой cypherString[i + 1], а там нет +1, все, амба, кончилась строка
еще подумай, не спеши
0
7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501
09.09.2019, 21:09  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function XorDecode(Source, Key: string): string;
var
  I: integer;
  C: Char;
begin
  Result := '';
  for I := 0 to Length(Source) div 2 - 1 do
  begin
    C := Char(StrToIntDef('$' + Copy(Source, (I * 2) + 1, 2), Ord(' ')));
    if Length(Key) > 0 then
      C := Char(Byte(Key[1 + (I mod Length(Key))]) xor Byte(C));
    Result := Result + C;
  end;
end;
Добавлено через 10 минут
посмотрел на код delphi и понял ошибку
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def decodeXor(cypherString, key):
    plainText = ''
    cypherArray = []
    i = 0
    lencypher = int(len(cypherString))-1
    for i in range(0, lencypher,2):
        cypherArray.append(cypherString[i] + cypherString[i + 1])
    for i in range(0, len(cypherArray), 1):
        hex = cypherArray[i]
        dec = int(hex, 16)
        keyPointer = i % len(key)
        asciiCode = dec ^ ord(key[keyPointer])
        plainText += chr(asciiCode)
    return plainText
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.09.2019, 21:54
Цитата Сообщение от Valimer Посмотреть сообщение
для pythona данной ф-ии не нашел
Code
1
твой_любимый_поиcковик> -site:github.com python xor decode

В Python для такого кода вовсе не требуется использование индексов. Потому что Python не Delphi.

Пример из одного кода на гитхабе:
Python
1
2
def xor(plaintext, key):
    return "".join(chr(ord(p)^ord(k)) for p, k in zip(plaintext, key))
0
7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501
09.09.2019, 21:56  [ТС]
не каждый код что написан подходит, потому что тут шифрование выдает как HEX
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.09.2019, 21:56
Помогаю со студенческими работами здесь

Builtins.IndexError: string index out of range
Ошибка возникает в 17-ой строке: #function description section #list fill function def ListFill(size): for i in...

Traceback (most recent call last): File "<string>", line 5, in <module> IndexError: list index out of range
from random import random as r n,k=map(int,input('n k &gt; ').split()) k-=1; b=range(n) a= for i in b]; print(a) for j in b: a/=a ...

IndexError: list index out of range
Добрый день, столкнулся с такой проблемой: создавал телеграм-бота, и при вводе боту команды &quot;/add&quot;, в консоли вылезает ошибка:...

IndexError: list index out of range
Уважаемые господа форумчане, начал изучать пайтон, и вот что не понятно: fileWords = open(&quot;words.txt&quot;,'r') while 1: ...

IndexError: list index out of range
помогите, пожалуйста. в 25 и 32 строчках выдаёт ошибку: IndexError: list index out of range def numbers_factory(number): s = ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru