Как я могу разделить свой список шестнадцатеричных чисел, используя обратную косую черту, как при загрузке моего изображения? - PullRequest
0 голосов
/ 28 мая 2020

Я работал над небольшой программой для вывода шестнадцатеричных значений от 0 до 255 в формате, который мне не удалось понять. Я все еще учусь, поэтому мне нужен совет о том, как улучшить этот код и добиться своих результатов. Я попытался использовать метод join () для разделения каждого шестнадцатеричного значения обратной косой чертой, но из-за того, что я перебираю списки, для каждого символа используется обратная косая черта, чего я не хочу. Я загрузил изображение, чтобы показать, как я собираюсь выводить шестнадцатеричные значения. Любая помощь очень ценится.

enter image description here

hex_chars1 = []
hex_chars2 = []

for i in range(0, 16):
    hex_chars1.append(i)

for j in range(16, 256):
    hex_chars2.append(j)

for char1 in hex_chars1:
    print("x0" + "{0:x}".format(char1))

for char2 in hex_chars2:
    print("x" + "{0:x}".format(char2))

Ответы [ 2 ]

2 голосов
/ 28 мая 2020

Вы можете использовать выражение генератора для создания форматированных значений, а затем соединить их ():

print(''.join(fr'\x{i:0>2x}' for i in range(256)))
1 голос
/ 28 мая 2020

Это должно быть то, что вы хотите:

hex_chars = []

for i in range(0, 256):
    if i <16:
        hex_chars.append("\\x0" + "{0:x}".format(i))
    else:
        hex_chars.append("\\x" + "{0:x}".format(i))

    print(hex_chars[i],end="")

    if (i+1)%16==0:
        print("")
...