Я написал код для создания всех 4-значных комбинаций шестнадцатеричной системы, и теперь я пытаюсь использовать их для печати всех символов Юникода, связанных с этими значениями. Вот код, я использую, чтобы сделать это:Печать всех символов Юникода в Python
char_list =["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"]
pairs = []
all_chars = []
# Construct pairs list
for char1 in char_list:
for char2 in char_list:
pairs.append(char1 + char2)
# Create every combination of unicode characters ever
for pair1 in pairs:
for pair2 in pairs:
all_chars.append(pair1 + pair2)
# Print all characters
for code in all_chars:
expression = "u'\u" + code + "'"
print "{}: {}".format(code,eval(expression))
А вот сообщение об ошибке я получаю:
Traceback (most recent call last): File "C:\Users\andr7495\Desktop\unifun.py",
line 18, in <module> print "{}: {}".format(code,eval(expression))
UnicodeEncodeError: 'ascii' codec can't encode character u'\x80' in position 0:
ordinal not in range(128)
Исключение генерируется, когда код пытается напечатать U "\ u0080 », однако, я могу сделать это в интерактивном интерпретаторе без проблем.
Я пробовал приведение результатов в unicode и указание игнорировать ошибки, но это не помогает. Я чувствую, что мне не хватает базового понимания того, как работает unicode, но есть ли что-нибудь, что я могу сделать, чтобы заставить мой код распечатать все допустимые выражения в Юникоде?
пытаются избежать Eval, особенно в цикле –
'и "\ u0080"' это [символ управления] (http://www.fileformat.info/info/ unicode/char/0080/index.htm) ... может быть, вы не можете распечатать это? – tom
@tom особенно, если он печатает на стандартные окна cmd.exe: P –