Как удалить '\ x0' из строки python? - PullRequest
0 голосов
/ 18 марта 2020
def sxor(s1,s2):
    return ''.join(chr(ord(a) ^ ord(b)) for a,b in  zip (s1,s2))

text = sxor('a','a')
text

вывод равен

\x00

Опробовано много ранее отвеченных методов, но ни один не работает для удаления '\ x0', поскольку только '0' является обязательным ответом.

Вот еще один пример:

def sxor(s1,s2):
    return ''.join(chr(ord(a) ^ ord(b)) for a,b in  zip (s1,s2))

text = sxor('1','2')

ouput

\x03

То, что я пробовал:

def sxor(s1,s2):
    return ''.join(chr(ord(a) ^ ord(b)) for a,b in  zip (s1,s2))

text = sxor('1','1')
text.rstrip('\x0')

Показана ошибка:


  File "<ipython-input-26-d4905edd1961>", line 6
    text.rstrip('\x0')
               ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-2: truncated \xXX escape

И если я напишу это как '\ x00', то он также удалит необходимую часть и также не будет работать для любого другого случая. Я также пытался использовать функцию замены. Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 18 марта 2020

Заменить chr на str.

  1. chr создает одну символьную строку из значения int в качестве кода ascii. Так chr(0) означает ascii 0 символ, который представлен '\x00'.
  2. То, что вы хотите, это str. Создает строку из заданного значения (в данном случае int). str(0) is '0'.

примеры:

print('\x00' == chr(0))
print('\x01' == chr(1))
print('0' == str(0))
print('1' == str(1))

вывод:

True
True
True
True
...