Ошибка строки Python3 в hex в файле, но не в терминале - PullRequest
1 голос
/ 03 ноября 2019

это мой кусок кода, который выводит на входные улики [0] = '706965':

x = clues[0]
answer = bytes.fromhex(x).decode("ascii")
<class 'ValueError'>, ValueError('non-hexadecimal number found in fromhex() arg at position 5')

Если я добавлю 0 к подсказкам [0], он выдаст ожидаемый результат спервый символ со смещением.

x = '0'+clues[0]

В таком случае вывод будет «[] т.е.». [] Означает специальный символ (stackoverflow пропускает его).

, но если я запускаю этот пример в терминале, все работает нормально.

>>> x = '706965'
>>> bytes.fromhex(x).decode("ascii")
'pie'

Решено: Ошибка синтаксического анализа

1 Ответ

1 голос
/ 03 ноября 2019

Из документов для bytes.fromhex

Этот метод класса байтов возвращает объект байтов, декодируя данный строковый объект. Строка должна содержать две шестнадцатеричные цифры на байт, а пробел ASCII игнорируется.

При добавлении «0» к вашей строке длина равна семи, поэтому она не может состоять из двухзначных пар

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...