Я использую Python для печати определенных символов с использованием кода Unicode, но столкнулся с проблемой. Я могу печатать только определенные символы. Например:
lista = ['\u23fb', '\u23fc', '\u23fd', '\u23fe', '\ue001', '\ue002',' \ue003', '\ue004' ,'\ue005']
print(lista)
даст мне в результате:
['⏻', '⏼', '⏽', '⏾', '\ue001', '\ue002', ' \ue003', '\ue004', '\ue005']
Кроме того, если я пройдусь по списку и распечатаю каждый элемент, это не сработает,
но если я использую:
print(*lista)
он будет печатать правильно:
Так почему же есть разница?
Это также работает, если я печатаю каждый из них с аргументом печати, например:
print("\ue001")
приведет к правильному выводу.
Я пробовал разные методы форматирования, но безуспешно.
Когда list
печатается, Python использует функцию str.__repr__
для печати элементов в списке. print
использует функцию str.__str__
. Первая представляет собой удобную для программистов версию, которая отображает непечатаемые или неопределенные символы Юникода в качестве escape-кодов. U+E000 - U+F8FF
— это зона частного использования, которая считается неопределенной. print
будет отображать любой символ, который ваш шрифт имеет для этого места, или неопределенный символ (U+FFFD, �, зависит от шрифта), если он не определен в шрифте.
Спасибо за объяснение. Теперь я могу решить свою проблему соответствующим образом.