#python #python-3.x #list #hex #ascii
Вопрос:
У меня есть этот код.
character = input("Enter a character: n")
def ASCIItoHEX(ascii):
hexa = []
for i in range(len(ascii)):
ch = ascii[i]
in1 = ord(ch)
part = hex(in1)
hexa = part
return hexa
if __name__ == '__main__':
hexadecimal = ASCIItoHEX(character)
print(hexadecimal)
и это дает мне такой вывод, когда я ввожу «1111».:
[‘0’, ‘x’, ‘3’, ‘1’, ‘0’, ‘x’, ‘3’, ‘1’, ‘0’, ‘x’, ‘3’, ‘1’, ‘0’, ‘x’, ‘3’, ‘1’]
но я хочу, чтобы мой результат был таким:
[‘0x31’, ‘0x31’, ‘0x31’, ‘0x31’]
Как получить этот результат?
Ответ №1:
Используйте list.append()
вместо =
этого для добавления всей строки. В противном случае строка обрабатывается как последовательность и разбивается на символы.
character = input("Enter a character: n")
def ASCIItoHEX(ascii):
hexa = []
for i in range(len(ascii)):
ch = ascii[i]
in1 = ord(ch)
part = hex(in1)
hexa.append(part)
return hexa
if __name__ == '__main__':
hexadecimal = ASCIItoHEX(character)
print(hexadecimal)
Другим способом было бы
hexa = [part]
чтобы объединить два списка.